Example usage for org.springframework.amqp.core Message getBody

List of usage examples for org.springframework.amqp.core Message getBody

Introduction

In this page you can find the example usage for org.springframework.amqp.core Message getBody.

Prototype

public byte[] getBody() 

Source Link

Usage

From source file:com.opengsn.services.facilitymanager.DefaultFacilityManagerProvider.java

@Override
public String readModel(String id) {
    try {/*from   ww  w  .ja  v a 2  s. c o  m*/
        ModelReadRequest req = new ModelReadRequest();
        ObjectMapper mapper = new ObjectMapper();
        String reqString = mapper.writeValueAsString(req);
        Message resp = iaasTemplate.sendAndReceive(new Message(reqString.getBytes(), null));
        ModelReadResponse execResp = mapper.readValue(resp.getBody().toString(), ModelReadResponse.class);
        String jsonData = execResp.getModel();
        XMLSerializer serializer = new XMLSerializer();
        JSON json = JSONSerializer.toJSON(jsonData);
        String xml = serializer.write(json);
        System.out.println(xml);
        return execResp.getModel();
    } catch (Exception e) {
        return null;
    }
}

From source file:amqp.spring.converter.XStreamConverterTest.java

@Test
public void testConversion() throws Exception {
    TestObject testObject = new TestObject();
    testObject.setValue("TESTING");

    MessageProperties messageProperties = new MessageProperties();

    MessageConverter converter = new XStreamConverter();
    ((XStreamConverter) converter).setEncoding("UTF-8");
    Message amqpMessage = converter.toMessage(testObject, messageProperties);
    Assert.assertEquals("{\"amqp.spring.converter.XStreamConverterTest_-TestObject\":{\"value\":\"TESTING\"}}",
            new String(amqpMessage.getBody()));

    Object newObject = converter.fromMessage(amqpMessage);
    Assert.assertEquals(testObject, newObject);
    Assert.assertEquals("UTF-8", ((XStreamConverter) converter).getEncoding());
}

From source file:com.jbrisbin.vpc.jobsched.batch.BatchMessageHandler.java

public BatchMessage handleMessage(BatchMessage batch) throws Exception {
    log.debug("handling message: " + batch.toString());

    final BatchMessage results = new BatchMessage();
    results.setId(batch.getId());// ww w .ja  va 2s  .  c  o m

    // For waiting till our results are all back
    final CountDownLatch latch = new CountDownLatch(batch.getMessages().size());

    Queue resultsQueue = rabbitAdmin.declareQueue();
    SimpleMessageListenerContainer listener = new SimpleMessageListenerContainer(connectionFactory);
    listener.setAutoAck(true);
    listener.setQueues(resultsQueue);
    listener.setMessageListener(new MessageListener() {
        public void onMessage(Message message) {
            String messageId = new String(message.getMessageProperties().getCorrelationId());
            String body = new String(message.getBody());
            results.getMessages().put(messageId, body);
            latch.countDown();
        }
    });
    listener.start();

    for (Map.Entry<String, String> msg : batch.getMessages().entrySet()) {
        final String[] parts = msg.getKey().split(":");
        template.send(parts[0], parts[1],
                new MessageCreator(parts[2], parts[3], resultsQueue.getName(), msg.getValue().getBytes()));
    }

    // Wait the timeout value per message for all results to be collected
    latch.await((batch.getTimeout() * batch.getMessages().size()), TimeUnit.MINUTES);

    return results;
}

From source file:com.opengsn.services.cloudmanager.DefaultCloudManagerProvider.java

@Override
public Host getHostInformation(String id) {
    try {//from w w  w  .ja  v  a2s . c om
        ModelReadRequest req = new ModelReadRequest();
        ObjectMapper mapper = new ObjectMapper();
        String reqString = mapper.writeValueAsString(req);
        Message resp = iaasTemplate.sendAndReceive(new Message(reqString.getBytes(), null));
        ModelReadResponse execResp = mapper.readValue(resp.getBody().toString(), ModelReadResponse.class);
        Host host = new Host();
        return host;
    } catch (Exception e) {
        return null;
    }
}

From source file:com.opengsn.services.cloudmanager.DefaultCloudManagerProvider.java

@Override
public String execute(String resourceId, String actionName, Map<String, String> parameters) {
    try {//from   ww w  .j a va  2 s .  c om
        ExecutionRequest req = new ExecutionRequest();
        ObjectMapper mapper = new ObjectMapper();
        String reqString = mapper.writeValueAsString(req);
        Message resp = iaasTemplate.sendAndReceive(new Message(reqString.getBytes(), null));
        ExecutionResponse execResp = mapper.readValue(resp.getBody().toString(), ExecutionResponse.class);
        return execResp.getResponseDocument();
    } catch (Exception e) {
        return "";
    }

}

From source file:com.enitalk.controllers.bots.EniWordController.java

@RabbitListener(queues = "eniwords")
public void consume(Message msg) {
    try {//w w  w.jav  a  2 s  .  co m
        JsonNode user = jackson.readTree(msg.getBody());
        logger.info("Sending eniword to student {}", user);

        Integer lastWord = user.at("/eniword/wc").asInt(0) + 1;
        HashMap word = mongo.findOne(Query.query(Criteria.where("i").gt(lastWord)), HashMap.class, "words");
        if (word == null) {
            return;
        }

        ObjectNode wToSend = jackson.convertValue(word, ObjectNode.class);

        String text = "0x1f4d8 <b>EniWord</b>\n";
        text += "0x1f4e2 Word: <b>" + wToSend.path("word").asText() + "</b>\n";
        text += "0x1f4cb Part of speech: <b>" + parts.get(wToSend.path("type").asInt()) + "</b>\n";
        text += "0x1f6a9 <b>Usage:</b>\n";
        JsonNode exs = wToSend.at("/def/examples");
        Iterator<JsonNode> els = exs.elements();
        int i = 1;
        while (els.hasNext() && i < 2) {
            text += i++ + ". " + els.next().path("text").asText() + "\n";
        }

        text += "---------\nWe will send you another awesome word in 40 minutes.\nPress /recommend to get back to the menu and browse teachers.";

        logger.info("Text to send {}", text);

        ArrayNode tg = jackson.createArrayNode();
        ObjectNode o = tg.addObject();
        o.set("dest", user.path("dest"));
        ObjectNode message = jackson.createObjectNode();
        o.set("message", message);
        message.put("text", text);

        //make unsubscribe button
        ArrayNode a = jackson.createArrayNode();
        //            String buttonUrl = env.getProperty("self.url") + "/eniword/cancel/" + user.at("/dest/sendTo").asLong();
        //            logger.info("Button url {}", buttonUrl);

        //            makeButtonHref(a, "Stop sending words", buttonUrl);
        message.set("buttons", a);

        rate.acquire();
        sendMessages(tg);

        mongo.updateFirst(Query.query(Criteria.where("dest.sendTo").is(user.at("/dest/sendTo").asLong())),
                new Update().set("eniword.wc", wToSend.path("i").asLong()).inc("eniword.points", -1), "leads");

    } catch (Exception e) {
        logger.error(ExceptionUtils.getFullStackTrace(e));
    }
}

From source file:com.jbrisbin.vpc.jobsched.RequeueMessageListenerAdapter.java

@Override
protected void postProcessResponse(Message request, Message response) throws Exception {
    super.postProcessResponse(request, response);
    log.info(new String(request.getBody()));
}

From source file:com.opengsn.services.cloudmanager.DefaultCloudManagerProvider.java

public VMNetAddress getNetworkAddress(String vmName) {
    try {//from w w w.  j a  v a 2s.c  om
        Map<String, String> args = new HashMap<String, String>();
        args.put("vmName", vmName);
        NetworkManagerRequest req = new NetworkManagerRequest(NetworkManagerRequest.CMD_assignVMAddress, args);
        ObjectMapper mapper = new ObjectMapper();
        String reqString = mapper.writeValueAsString(req);
        Message resp = networkManagerTemplate.sendAndReceive(new Message(reqString.getBytes(), null));
        NetworkManagerResponse nres = mapper.readValue(resp.getBody().toString(), NetworkManagerResponse.class);
        return VMNetAddress.fromXML(nres.getMessage());
    } catch (Exception e) {
        return null;
    }
}

From source file:com.jbrisbin.vpc.jobsched.exe.ExeMessageConverter.java

public Object fromMessage(Message message) throws MessageConversionException {
    MessageProperties props = message.getMessageProperties();
    if (isAuthorized(props)) {
        //Map<String, Object> headers = props.getHeaders();
        byte[] bytes = message.getBody();
        ExeMessage msg;/*from   w  ww  .jav a  2 s .c o m*/
        try {
            msg = mapObject(bytes, ExeMessage.class);
            if (log.isDebugEnabled()) {
                log.debug(String.format(" MSG: %s", msg));
            }
        } catch (IOException e) {
            throw new MessageConversionException(e.getMessage(), e);
        }

        return msg;
    } else {
        throw new MessageConversionException("Invalid security key.");
    }
}

From source file:com.jbrisbin.vpc.jobsched.patch.PatchMessageConverter.java

public Object fromMessage(Message message) throws MessageConversionException {

    PatchMessage msg = new PatchMessage();
    BufferedReader reader = new BufferedReader(
            new InputStreamReader(new ByteArrayInputStream(message.getBody())));

    List<String> diff = new ArrayList<String>();
    String line = null;// www.  j  av a  2s .  c om
    try {
        while (null != (line = reader.readLine())) {
            diff.add(line);
        }
        msg.setDiff(diff);
    } catch (IOException e) {
        log.error(e.getMessage(), e);
    }

    Object fileName = message.getMessageProperties().getHeaders().get("file");
    if (null != fileName) {
        if (log.isDebugEnabled()) {
            log.debug(String.format("Patching file %s with %s", fileName.toString(),
                    new String(message.getBody())));
        }
        String s = fileName.toString();
        if (s.startsWith("/")) {
            s = s.substring(1);
        }
        msg.setFile(String.format("%s/%s", rootDir, fileName.toString()));
    }
    return msg;
}