Package rocks.xmpp.core.stanza.model.client

Examples of rocks.xmpp.core.stanza.model.client.Message


                "      <failed-rules xmlns='http://jabber.org/protocol/amp#errors'>\n" +
                "        <rule action='error' condition='deliver' value='stored'/>\n" +
                "      </failed-rules>\n" +
                "    </error>\n" +
                "  </message>\n";
        Message message = unmarshal(xml, Message.class);
        AdvancedMessageProcessing amp = message.getExtension(AdvancedMessageProcessing.class);
        Assert.assertNotNull(amp);
        Assert.assertEquals(amp.getStatus(), Rule.Action.ERROR);
        Assert.assertEquals(amp.getTo(), Jid.valueOf("bernardo@hamlet.lit/elsinore"));
        Assert.assertEquals(amp.getRules().size(), 1);
        Assert.assertTrue(message.getError().getExtension() instanceof FailedRules);
        FailedRules failedRules = (FailedRules) (message.getError().getExtension());
        Assert.assertEquals(failedRules.getRules().size(), 1);
        Assert.assertEquals(failedRules.getRules().get(0).getAction(), Rule.Action.ERROR);
        Assert.assertEquals(failedRules.getRules().get(0).getCondition(), Rule.Condition.DELIVER);
        Assert.assertEquals(failedRules.getRules().get(0).getValue(), "stored");
    }
View Full Code Here


    public void unmarshalLastMessageCorrection() throws XMLStreamException, JAXBException {
        String xml = "<message to='juliet@capulet.net/balcony' id='good1'>\n" +
                "  <body>But soft, what light through yonder window breaks?</body>\n" +
                "  <replace id='bad1' xmlns='urn:xmpp:message-correct:0'/>\n" +
                "</message>";
        Message message = unmarshal(xml, Message.class);
        Replace replace = message.getExtension(Replace.class);
        Assert.assertNotNull(replace);
        Assert.assertEquals(replace.getId(), "bad1");
    }
View Full Code Here

                "            action='drop'\n" +
                "            value='2004-01-01T00:00:00Z'/>\n" +
                "    </unsupported-actions>\n" +
                "  </error>\n" +
                "</message>\n";
        Message message = unmarshal(xml, Message.class);
        AdvancedMessageProcessing amp = message.getExtension(AdvancedMessageProcessing.class);
        Assert.assertNotNull(amp);
        Assert.assertTrue(message.getError().getExtension() instanceof UnsupportedActions);
        UnsupportedActions ampError = (UnsupportedActions) message.getError().getExtension();
        Assert.assertEquals(ampError.getRules().size(), 1);
        Assert.assertEquals(ampError.getRules().get(0).getAction(), Rule.Action.DROP);
        Assert.assertEquals(ampError.getRules().get(0).getCondition(), Rule.Condition.EXPIRE_AT);
        Assert.assertEquals(ampError.getRules().get(0).getValue(), "2004-01-01T00:00:00Z");
    }
View Full Code Here

                "              </mood>\n" +
                "          </message>\n" +
                "        </forwarded>\n" +
                "      </message>";

        Message message = unmarshal(xml, Message.class);
        Forwarded forwarded = message.getExtension(Forwarded.class);
        Assert.assertNotNull(forwarded);
        Assert.assertTrue(forwarded.getStanza() instanceof Message);
    }
View Full Code Here

                "    <unsupported-conditions xmlns='http://jabber.org/protocol/amp'>\n" +
                "      <rule action='drop' condition='expire-at' value='2004-01-01T00:00:00Z'/>\n" +
                "    </unsupported-conditions>\n" +
                "  </error>\n" +
                "</message>\n";
        Message message = unmarshal(xml, Message.class);
        AdvancedMessageProcessing amp = message.getExtension(AdvancedMessageProcessing.class);
        Assert.assertNotNull(amp);
        Assert.assertTrue(message.getError().getExtension() instanceof UnsupportedConditions);
        UnsupportedConditions ampError = (UnsupportedConditions) message.getError().getExtension();
        Assert.assertEquals(ampError.getRules().size(), 1);
        Assert.assertEquals(ampError.getRules().get(0).getAction(), Rule.Action.DROP);
        Assert.assertEquals(ampError.getRules().get(0).getCondition(), Rule.Condition.EXPIRE_AT);
        Assert.assertEquals(ampError.getRules().get(0).getValue(), "2004-01-01T00:00:00Z");
    }
View Full Code Here

                "    <invalid-rules xmlns='http://jabber.org/protocol/amp'>\n" +
                "      <rule action='drop' condition='expire-at' value='2004-01-01T00:00:00Z'/>\n" +
                "    </invalid-rules>\n" +
                "  </error>\n" +
                "</message>\n";
        Message message = unmarshal(xml, Message.class);
        AdvancedMessageProcessing amp = message.getExtension(AdvancedMessageProcessing.class);
        Assert.assertNotNull(amp);
        Assert.assertTrue(message.getError().getExtension() instanceof InvalidRules);
        InvalidRules ampError = (InvalidRules) message.getError().getExtension();
        Assert.assertEquals(ampError.getRules().size(), 1);
        Assert.assertEquals(ampError.getRules().get(0).getAction(), Rule.Action.DROP);
        Assert.assertEquals(ampError.getRules().get(0).getCondition(), Rule.Condition.EXPIRE_AT);
        Assert.assertEquals(ampError.getRules().get(0).getValue(), "2004-01-01T00:00:00Z");
    }
View Full Code Here

                "      <group>Retinue</group>\n" +
                "    </item>\n" +
                "  </x>\n" +
                "</message>\n";

        Message message = unmarshal(xml, Message.class);
        ContactExchange contactExchange = message.getExtension(ContactExchange.class);
        Assert.assertNotNull(contactExchange);
        Assert.assertEquals(contactExchange.getItems().size(), 3);
        Assert.assertEquals(contactExchange.getItems().get(0).getJid(), Jid.valueOf("rosencrantz@denmark.lit"));
        Assert.assertEquals(contactExchange.getItems().get(0).getAction(), ContactExchange.Item.Action.ADD);
        Assert.assertEquals(contactExchange.getItems().get(0).getName(), "Rosencrantz");
View Full Code Here

        xmppSession.addMessageListener(new MessageListener() {
            @Override
            public void handle(MessageEvent e) {
                if (e.isIncoming() && isEnabled()) {
                    Message message = e.getMessage();
                    Event event = message.getExtension(Event.class);
                    if (event != null) {
                        for (Item item : event.getItems()) {
                            if (item.getPayload() instanceof AvatarMetadata) {
                                AvatarMetadata avatarMetadata = (AvatarMetadata) item.getPayload();

                                // Empty avatar
                                if (avatarMetadata.getInfoList().isEmpty()) {
                                    notifyListeners(message.getFrom().asBareJid(), null);
                                } else {
                                    try {
                                        // Check if we have a cached avatar.
                                        byte[] cachedImage = loadFromCache(item.getId());
                                        if (cachedImage != null) {
                                            notifyListeners(message.getFrom().asBareJid(), cachedImage);
                                        } else {
                                            // We don't have a cached copy, let's retrieve it.

                                            // Determine the best info
                                            AvatarMetadata.Info chosenInfo = null;
                                            // Check if there's an avatar, which is stored in PubSub node (and therefore must be in PNG format).
                                            for (AvatarMetadata.Info info : avatarMetadata.getInfoList()) {
                                                if (info.getUrl() == null) {
                                                    chosenInfo = info;
                                                }
                                            }

                                            // If only URLs are available, choose the first URL.
                                            if (chosenInfo == null) {
                                                for (AvatarMetadata.Info info : avatarMetadata.getInfoList()) {
                                                    if (info.getUrl() != null) {
                                                        chosenInfo = info;
                                                        break;
                                                    }
                                                }
                                            }

                                            if (chosenInfo != null && chosenInfo.getUrl() != null) {
                                                URLConnection urlConnection = chosenInfo.getUrl().openConnection();
                                                String type = urlConnection.getContentType();
                                                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                                                // Download the image file.
                                                try (InputStream in = urlConnection.getInputStream()) {
                                                    byte data[] = new byte[4096];
                                                    int n;
                                                    while ((n = in.read(data, 0, 4096)) != -1) {
                                                        baos.write(data, 0, n);
                                                    }
                                                }
                                                byte[] data = baos.toByteArray();
                                                storeToCache(item.getId(), data);
                                                notifyListeners(message.getFrom().asBareJid(), data);

                                            } else {
                                                PubSubService pubSubService = xmppSession.getExtensionManager(PubSubManager.class).createPubSubService(message.getFrom());

                                                List<Item> items = pubSubService.getNode(AvatarData.NAMESPACE).getItems(item.getId());
                                                if (!items.isEmpty()) {
                                                    Item i = items.get(0);
                                                    if (i.getPayload() instanceof AvatarData) {
                                                        AvatarData avatarData = (AvatarData) i.getPayload();
                                                        storeToCache(item.getId(), avatarData.getData());
                                                        notifyListeners(message.getFrom().asBareJid(), avatarData.getData());
                                                    }
                                                }
                                            }
                                        }
                                    } catch (XmppException | IOException e1) {
View Full Code Here

                "    to='francisco@shakespeare.lit'\n" +
                "    type='chat'>\n" +
                "  <body>Who's there?</body>\n" +
                "  <active xmlns='http://jabber.org/protocol/chatstates'/>\n" +
                "</message>";
        Message message = unmarshal(xml, Message.class);
        Assert.assertEquals(message.getExtensions().size(), 1);
        Assert.assertTrue(message.getExtensions().get(0) instanceof Active);
    }
View Full Code Here

                "    from='bernardo@shakespeare.lit/pda'\n" +
                "    to='francisco@shakespeare.lit/elsinore'\n" +
                "    type='chat'>\n" +
                "  <composing xmlns='http://jabber.org/protocol/chatstates'/>\n" +
                "</message>\n";
        Message message = unmarshal(xml, Message.class);
        Assert.assertEquals(message.getExtensions().size(), 1);
        Assert.assertTrue(message.getExtensions().get(0) instanceof Composing);
    }
View Full Code Here

TOP

Related Classes of rocks.xmpp.core.stanza.model.client.Message

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.