Example usage for org.springframework.messaging Message getPayload

List of usage examples for org.springframework.messaging Message getPayload

Introduction

In this page you can find the example usage for org.springframework.messaging Message getPayload.

Prototype

T getPayload();

Source Link

Document

Return the message payload.

Usage

From source file:org.springframework.xd.dirt.stream.FileSourceModuleTests.java

@Test
public void testFileContentsUsingDefaultMode() throws IOException {
    deployStream("filecontentsdefault", "file --dir=" + sourceDirName + " --fixedDelay=0 | sink");
    MessageTest test = new MessageTest() {

        @Override//from   w w w.  j  a va 2s.c om
        public void test(Message<?> message) throws MessagingException {
            byte[] bytes = (byte[]) message.getPayload();
            assertEquals("foo", new String(bytes));
            assertEquals("foo.txt", message.getHeaders().get(FileHeaders.FILENAME, String.class));
            assertEquals(MimeType.valueOf("application/octet-stream"),
                    contentTypeResolver.resolve(message.getHeaders()));
        }
    };
    StreamTestSupport.getSinkInputChannel("filecontentsdefault").subscribe(test);
    dropFile("foo.txt");
    test.waitForCompletion(1000);
    undeployStream("filecontentsdefault");
    assertTrue(test.getMessageHandled());
}

From source file:org.springframework.xd.dirt.stream.FileSourceModuleTests.java

@Test
public void testFileContentsAsString() throws IOException {
    deployStream("filestring",
            "file --dir=" + sourceDirName + " --fixedDelay=0 --outputType='text/plain;charset=UTF-8' | sink");
    MessageTest test = new MessageTest() {

        @Override//from   w  w  w .  jav a 2  s.c  o m
        public void test(Message<?> message) throws MessagingException {
            assertEquals("foo", message.getPayload());
            assertEquals("foo2.txt", message.getHeaders().get(FileHeaders.FILENAME, String.class));
            assertEquals(MimeTypeUtils.APPLICATION_OCTET_STREAM,
                    contentTypeResolver.resolve(message.getHeaders()));
        }
    };
    StreamTestSupport.getSinkInputChannel("filestring").subscribe(test);
    dropFile("foo2.txt");
    test.waitForCompletion(6000);
    StreamTestSupport.getDeployedModule("filestring", 0).stop();
    assertTrue(test.getMessageHandled());
}

From source file:org.springframework.xd.dirt.stream.FileSourceModuleTests.java

@Test
public void testFileReference() throws IOException {
    deployStream("fileref", "file --mode=ref --dir=" + sourceDirName + " --fixedDelay=0 | sink");
    MessageTest test = new MessageTest() {

        @Override//from  ww  w  .  j  a v a 2s.c o  m
        public void test(Message<?> message) throws MessagingException {
            File file = (File) message.getPayload();
            assertEquals(sourceDirName + File.separator + "foo1.txt", file.getAbsolutePath());
        }
    };
    StreamTestSupport.getSinkInputChannel("fileref").subscribe(test);
    dropFile("foo1.txt");
    test.waitForCompletion(1000);
    StreamTestSupport.getDeployedModule("fileref", 0).stop();
    assertTrue(test.getMessageHandled());
}

From source file:org.springframework.xd.dirt.stream.FileSourceModuleTests.java

@Test
public void testLinesMode() throws IOException {
    deployStream("textLine", "file --mode=lines --dir=" + sourceDirName + " --fixedDelay=0 | sink");
    MessageTest test = new MessageTest() {

        private AtomicInteger counter = new AtomicInteger(0);

        @Override/*from   w w  w . j a v  a2s.  c o m*/
        public void test(Message<?> message) throws MessagingException {
            assertTrue("Extected a String", message.getPayload() instanceof String);
            assertEquals("foo", message.getPayload());
            assertEquals("foo1.txt", message.getHeaders().get(FileHeaders.FILENAME, String.class));
            counter.incrementAndGet();
        }

        @Override
        public boolean getMessageHandled() {
            if (counter.get() == 10) {
                super.messageHandled = true;
            }
            return super.messageHandled;
        }

    };
    StreamTestSupport.getSinkInputChannel("textLine").subscribe(test);
    dropFile("foo1.txt", 10);
    test.waitForCompletion(3000);
    undeployStream("textLine");
    assertTrue(test.getMessageHandled());

}

From source file:org.springframework.xd.dirt.stream.FileSourceModuleTests.java

@Test
public void testLinesModeWithMarkersTrue() throws IOException {
    deployStream("textLineWithEmitMarkersTrue",
            "file --mode=lines --withMarkers=true --dir=" + sourceDirName + " --fixedDelay=0 | sink");
    MessageTest test = new MessageTest() {

        private AtomicInteger counter = new AtomicInteger(0);

        private FileMarker startFileMarker = null;

        private FileMarker endFileMarker = null;

        @Override/*  w ww  . j  a va2  s .  c om*/
        public void test(Message<?> message) throws MessagingException {
            if (message.getPayload() instanceof FileMarker) {
                final FileMarker fileMarker = (FileMarker) message.getPayload();
                if (FileMarker.Mark.START.equals(fileMarker.getMark())) {
                    startFileMarker = fileMarker;
                } else if (FileMarker.Mark.END.equals(fileMarker.getMark())) {
                    endFileMarker = fileMarker;
                }
            } else {
                assertTrue("Extected a String", message.getPayload() instanceof String);
                assertEquals("foo", message.getPayload());
                assertEquals("foo1.txt", message.getHeaders().get(FileHeaders.FILENAME, String.class));
                counter.incrementAndGet();
            }
        }

        @Override
        public boolean getMessageHandled() {
            if (counter.get() == 10 && startFileMarker != null && endFileMarker != null) {
                super.messageHandled = true;
            }
            return super.messageHandled;
        }

    };
    StreamTestSupport.getSinkInputChannel("textLineWithEmitMarkersTrue").subscribe(test);
    dropFile("foo1.txt", 10);
    test.waitForCompletion(3000);
    undeployStream("textLineWithEmitMarkersTrue");
    assertTrue(test.getMessageHandled());

}

From source file:org.springframework.xd.hadoop.fs.AvroWriter.java

@Override
public void write(Message<?> message) throws IOException {
    Object payload = message.getPayload();
    if (payload instanceof Collection<?>) {
        Collection<?> payloads = (Collection<?>) payload;
        if (logger.isDebugEnabled()) {
            logger.debug("Writing a collection of " + payloads.size() + " POJOs of type "
                    + payloads.toArray()[0].getClass().getName());
        }/*from  w  ww  . j a  v  a  2 s.com*/
        datasetOperations.write((Collection<?>) message.getPayload());
    } else {
        logger.warn("Expected a collection of POJOs but received " + message.getPayload().getClass().getName());
        datasetOperations.write(Collections.singletonList(message.getPayload()));
    }
}

From source file:org.springframework.xd.integration.hadoop.outbound.HdfsDataStoreMessageHandler.java

@Override
protected void doWrite(Message<?> message) throws Exception {
    Assert.notNull(storeWriter, "Writer already closed");
    Object payload = message.getPayload();
    if (payload instanceof String) {
        storeWriter.write((String) payload);
    } else {/*from  ww w . j  ava 2  s  .c  om*/
        throw new MessageHandlingException(message, "message not a String");
    }
}

From source file:org.springframework.xd.integration.hadoop.outbound.HdfsPartitionDataStoreMessageHandler.java

@Override
protected void doWrite(Message<?> message) throws Exception {
    Assert.notNull(storePartitionWriter, "Writer already closed");
    Object payload = message.getPayload();
    if (payload instanceof String) {
        storePartitionWriter.write((String) payload, message);
    } else {//w w w  .  j  a  v a  2s.c  o m
        throw new MessageHandlingException(message, "message not a String");
    }
}

From source file:org.springframework.xd.reactor.BroadcasterMessageHandler.java

@Override
protected void handleMessageInternal(Message<?> message) throws Exception {

    if (ClassUtils.isAssignable(inputType.getRawClass(), message.getClass())) {
        stream.onNext(message);/*from  ww  w. ja  v a2  s .  c  o  m*/
    } else if (ClassUtils.isAssignable(inputType.getRawClass(), message.getPayload().getClass())) {
        //TODO handle type conversion of payload to input type if possible
        stream.onNext(message.getPayload());
    }

    if (logger.isDebugEnabled()) {
        logger.debug(control.debug());
    }
}

From source file:org.springframework.xd.reactor.MultipleBroadcasterMessageHandler.java

@Override
protected void handleMessageInternal(Message<?> message) {
    Broadcaster<Object> broadcasterToUse = getBroadcaster(message);
    if (ClassUtils.isAssignable(inputType.getRawClass(), message.getClass())) {
        broadcasterToUse.onNext(message);
    } else if (ClassUtils.isAssignable(inputType.getRawClass(), message.getPayload().getClass())) {
        broadcasterToUse.onNext(message.getPayload());
    } else {/*from  w  w w . ja va2 s  .  c om*/
        throw new MessageHandlingException(message, "Processor signature does not match [" + message.getClass()
                + "] or [" + message.getPayload().getClass() + "]");
    }

    if (logger.isDebugEnabled()) {
        Object idToUse = partitionExpression.getValue(evaluationContext, message, Object.class);
        Control controls = this.controlsMap.get(idToUse);
        if (controls != null) {
            logger.debug(controls.debug());
        }
    }
}