@Override protected boolean acceptSpecific(Message message) { // Accept only messages which have a subject set return message.getSubject() != null; }
assertEquals(defaultLanguage, message.getSubject()); assertTrue(message.getSubjectLanguages().isEmpty()); assertEquals(defaultLanguage, message.getSubject(defaultLanguage)); assertNull(message.getSubject(otherLanguage)); assertXMLEqual(control, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertEquals(otherLanguage, message.getSubject()); assertTrue(message.getSubjectLanguages().isEmpty()); assertEquals(otherLanguage, message.getSubject(otherLanguage)); assertNull(message.getSubject(defaultLanguage)); assertXMLEqual(control, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertEquals(defaultLanguage, message.getSubject()); assertTrue(message.getSubjectLanguages().isEmpty()); assertEquals(defaultLanguage, message.getSubject(null)); assertNull(message.getSubject(otherLanguage)); assertXMLEqual(control, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertEquals(defaultLanguage, message.getSubject(defaultLanguage)); assertNull(message.getSubject(otherLanguage)); assertNull(message.getSubject()); assertFalse(message.getSubjectLanguages().isEmpty()); assertTrue(message.getSubjectLanguages().contains(otherLanguage)); assertEquals(otherLanguage, message.getSubject(otherLanguage)); assertNull(message.getSubject(defaultLanguage)); assertXMLEqual(control, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); assertNull(message.getSubject());
.parseMessage(PacketParserUtils.getParserFor(control)); assertEquals(defaultLanguage, message.getSubject()); assertEquals(otherLanguage, message.getSubject(otherLanguage)); assertEquals(2, message.getSubjects().size()); assertEquals(1, message.getSubjectLanguages().size()); .parseMessage(PacketParserUtils.getParserFor(control)); assertEquals(defaultLanguage, message.getSubject()); assertEquals(defaultLanguage, message.getSubject(defaultLanguage)); assertEquals(1, message.getSubjects().size()); assertEquals(0, message.getSubjectLanguages().size()); .parseMessage(PacketParserUtils.getParserFor(control)); assertEquals(otherLanguage, message.getSubject()); assertEquals(defaultLanguage, message.getSubject(defaultLanguage)); assertEquals(2, message.getSubjects().size()); assertEquals(1, message.getSubjectLanguages().size());
/** * Returns the default subject of the message, or null if the subject has not been set. * The subject is a short description of message contents. * <p> * The default subject of a message is the subject that corresponds to the message's language. * (see {@link #getLanguage()}) or if no language is set to the applications default * language (see {@link Stanza#getDefaultLanguage()}). * * @return the subject of the message. */ public String getSubject() { return getSubject(null); }
@Override public boolean accept(Stanza packet) { Message msg = (Message) packet; return subject.equals(msg.getSubject()); } });
@Override public void processStanza(Stanza packet) { final Message msg = (Message) packet; final EntityFullJid from = msg.getFrom().asEntityFullJidIfPossible(); // Update the room subject subject = msg.getSubject(); asyncButOrdered.performAsyncButOrdered(MultiUserChat.this, new Runnable() { @Override public void run() { // Fire event for subject updated listeners for (SubjectUpdatedListener listener : subjectUpdatedListeners) { listener.subjectUpdated(msg.getSubject(), from); } } }); } };
@Test public void setMessageSubjectTest() throws IOException, SAXException { final String messageSubject = "This is a test of the emergency broadcast system."; StringBuilder controlBuilder = new StringBuilder(); controlBuilder.append("<message>") .append("<subject>") .append(messageSubject) .append("</subject>") .append("</message>"); String control = controlBuilder.toString(); Message message = getNewMessage(); message.setSubject(messageSubject); assertEquals(messageSubject, message.getSubject()); assertXMLEqual(control, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); }
String subject = parseElementText(parser); if (message.getSubject(xmlLangSubject) == null) { message.addSubject(xmlLangSubject, subject);
assertEquals("Subjects are different", msg.getSubject(), msg2.getSubject()); assertEquals("Bodies are different", msg.getBody(), msg2.getBody()); assertEquals(
@Override protected Map<String, Object> extractStandardHeaders(Message source) { Map<String, Object> headers = new HashMap<>(); Jid from = source.getFrom(); if (from != null) { headers.put(XmppHeaders.FROM, from.toString()); } String subject = source.getSubject(); if (StringUtils.hasText(subject)) { headers.put(XmppHeaders.SUBJECT, subject); } String thread = source.getThread(); if (StringUtils.hasText(thread)) { headers.put(XmppHeaders.THREAD, thread); } Jid to = source.getTo(); if (to != null) { headers.put(XmppHeaders.TO, to.toString()); } Message.Type type = source.getType(); if (type != null) { headers.put(XmppHeaders.TYPE, type); } return headers; }
public boolean accept(Packet packet) { Message msg = (Message) packet; return msg.getSubject() != null; } };
public boolean accept(Packet packet) { Message msg = (Message) packet; return msg.getSubject() != null; } });
public boolean accept(Packet packet) { Message msg = (Message) packet; return msg.getSubject() != null; } };
public boolean accept(Packet packet) { Message msg = (Message) packet; return subject.equals(msg.getSubject()); } });
public boolean accept(Packet packet) { Message msg = (Message) packet; return subject.equals(msg.getSubject()); } });
public void processPacket(Packet packet) { Message msg = (Message) packet; // Update the room subject subject = msg.getSubject(); // Fire event for subject updated listeners fireSubjectUpdatedListeners( msg.getSubject(), msg.getFrom()); } };
public void processPacket(Packet packet) { Message msg = (Message) packet; // Update the room subject subject = msg.getSubject(); // Fire event for subject updated listeners fireSubjectUpdatedListeners( msg.getSubject(), msg.getFrom()); } };
assertNull(target.getTo()); assertNull(target.getFrom()); assertNull(target.getSubject()); assertEquals(Message.Type.normal, target.getType());
@Test public void fromHeadersStandardOutbound() { DefaultXmppHeaderMapper mapper = new DefaultXmppHeaderMapper(); Map<String, Object> headerMap = new HashMap<>(); headerMap.put("userDefined1", "foo"); headerMap.put("userDefined2", "bar"); headerMap.put(XmppHeaders.THREAD, "test.thread"); headerMap.put(XmppHeaders.TO, "test.to"); headerMap.put(XmppHeaders.FROM, "test.from"); headerMap.put(XmppHeaders.SUBJECT, "test.subject"); headerMap.put(XmppHeaders.TYPE, "headline"); MessageHeaders headers = new MessageHeaders(headerMap); Message target = new Message(); mapper.fromHeadersToRequest(headers, target); // "standard" XMPP headers assertEquals("test.thread", target.getThread()); assertEquals("test.to", target.getTo().toString()); assertEquals("test.from", target.getFrom().toString()); assertEquals("test.subject", target.getSubject()); assertEquals(Message.Type.headline, target.getType()); // user-defined headers not included by default assertNull(JivePropertiesManager.getProperty(target, "userDefined1")); assertNull(JivePropertiesManager.getProperty(target, "userDefined2")); // transient headers should not be copied assertNull(JivePropertiesManager.getProperty(target, "id")); assertNull(JivePropertiesManager.getProperty(target, "timestamp")); }
private void addXmppMessageProperties(Message message, Map<String, Object> properties) { properties.put(XmppConnector.XMPP_SUBJECT, message.getSubject()); properties.put(XmppConnector.XMPP_THREAD, message.getThread()); } }