/** * Sets who the stanza is being sent "from". The XMPP protocol often * makes the "from" attribute optional, so it does not always need to * be set. * * @param from who the stanza is being sent to. * @throws IllegalArgumentException if from is not a valid JID String. * @deprecated use {@link #setFrom(Jid)} instead. */ @Deprecated public void setFrom(String from) { Jid jid; try { jid = JidCreate.from(from); } catch (XmppStringprepException e) { throw new IllegalArgumentException(e); } setFrom(jid); }
@Override public void sendStanza(Stanza stanza) throws NotConnectedException, InterruptedException { Objects.requireNonNull(stanza, "Stanza must not be null"); assert (stanza instanceof Message || stanza instanceof Presence || stanza instanceof IQ); throwNotConnectedExceptionIfAppropriate(); switch (fromMode) { case OMITTED: stanza.setFrom((Jid) null); break; case USER: stanza.setFrom(getUser()); break; case UNCHANGED: default: break; } // Invoke interceptors for the new stanza that is about to be sent. Interceptors may modify // the content of the stanza. firePacketInterceptors(stanza); sendStanzaInternal(stanza); }
@Test public void fullCompareMatchingServiceJid() { FromMatchesFilter filter = FromMatchesFilter.createFull(SERVICE_JID1); Stanza packet = new Message(); packet.setFrom(SERVICE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(SERVICE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID1); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void bareCompareMatchingEntityFullJid() { FromMatchesFilter filter = FromMatchesFilter.createBare(FULL_JID1_R1); Stanza packet = new Message(); packet.setFrom(BASE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R2); assertTrue(filter.accept(packet)); packet.setFrom(BASE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void autoCompareMatchingServiceJid() { FromMatchesFilter filter = FromMatchesFilter.create(SERVICE_JID1); Stanza packet = new Message(); packet.setFrom(SERVICE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(SERVICE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID1); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void bareCompareMatchingServiceJid() { FromMatchesFilter filter = FromMatchesFilter.createBare(SERVICE_JID1); Stanza packet = new Message(); packet.setFrom(SERVICE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(SERVICE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID1); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void autoCompareMatchingBaseJid() { FromMatchesFilter filter = FromMatchesFilter.create(BASE_JID1); Stanza packet = new Message(); packet.setFrom(BASE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R2); assertTrue(filter.accept(packet)); packet.setFrom(BASE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void fullCompareMatchingBaseJid() { FromMatchesFilter filter = FromMatchesFilter.createFull(BASE_JID1); Stanza packet = new Message(); packet.setFrom(BASE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID1_R2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void bareCompareMatchingBaseJid() { FromMatchesFilter filter = FromMatchesFilter.createBare(BASE_JID1); Stanza packet = new Message(); packet.setFrom(BASE_JID1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R1); assertTrue(filter.accept(packet)); packet.setFrom(FULL_JID1_R2); assertTrue(filter.accept(packet)); packet.setFrom(BASE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void autoCompareMatchingEntityFullJid() { FromMatchesFilter filter = FromMatchesFilter.create(FULL_JID1_R1); Stanza packet = new Message(); packet.setFrom(FULL_JID1_R1); assertTrue(filter.accept(packet)); packet.setFrom(BASE_JID1); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID1_R2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
@Test public void fullCompareMatchingEntityFullJid() { FromMatchesFilter filter = FromMatchesFilter.createFull(FULL_JID1_R1); Stanza packet = new Message(); packet.setFrom(FULL_JID1_R1); assertTrue(filter.accept(packet)); packet.setFrom(BASE_JID1); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID1_R2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID2); assertFalse(filter.accept(packet)); packet.setFrom(FULL_JID2); assertFalse(filter.accept(packet)); packet.setFrom(BASE_JID3); assertFalse(filter.accept(packet)); }
/** * Sets who the stanza is being sent "from". The XMPP protocol often * makes the "from" attribute optional, so it does not always need to * be set. * * @param from who the stanza is being sent to. * @throws IllegalArgumentException if from is not a valid JID String. * @deprecated use {@link #setFrom(Jid)} instead. */ @Deprecated public void setFrom(String from) { Jid jid; try { jid = JidCreate.from(from); } catch (XmppStringprepException e) { throw new IllegalArgumentException(e); } setFrom(jid); }
@Override public void sendStanza(Stanza stanza) throws NotConnectedException, InterruptedException { Objects.requireNonNull(stanza, "Stanza must not be null"); assert (stanza instanceof Message || stanza instanceof Presence || stanza instanceof IQ); throwNotConnectedExceptionIfAppropriate(); switch (fromMode) { case OMITTED: stanza.setFrom((Jid) null); break; case USER: stanza.setFrom(getUser()); break; case UNCHANGED: default: break; } // Invoke interceptors for the new stanza that is about to be sent. Interceptors may modify // the content of the stanza. firePacketInterceptors(stanza); sendStanzaInternal(stanza); }