/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** * This will return the proper buffer to represent the data of the Message. If compressed it will decompress. * If large, it will read from the file or streaming. * @return * @throws ActiveMQException */ @Override public ActiveMQBuffer getDataBuffer() { ActiveMQBuffer buffer; try { if (isLargeMessage()) { buffer = getLargeMessageBuffer(); } else { buffer = getReadOnlyBodyBuffer(); } if (Boolean.TRUE.equals(getBooleanProperty(Message.HDR_LARGE_COMPRESSED))) { buffer = inflate(buffer); } } catch (Exception e) { logger.warn(e.getMessage(), e); return getReadOnlyBodyBuffer(); } return buffer; }
/** The message is received, then sent to the other side untouched */ @Test public void testPassThrough() { CoreMessage decodedMessage = decodeMessage(); Assert.assertEquals(TEXT, TextMessageUtil.readBodyText(decodedMessage.getReadOnlyBodyBuffer()).toString()); }
@Test public void testBodyBufferSize() { final CoreMessage decodedMessage = decodeMessage(); final int bodyBufferSize = decodedMessage.getBodyBufferSize(); final int readonlyBodyBufferReadableBytes = decodedMessage.getReadOnlyBodyBuffer().readableBytes(); Assert.assertEquals(bodyBufferSize, readonlyBodyBufferReadableBytes); }
Assert.assertEquals(TEXT, TextMessageUtil.readBodyText(coreMessage.getReadOnlyBodyBuffer()).toString());
public void sendInternalLarge(CoreMessage message, boolean direct) throws Exception { int headerSize = message.getHeadersAndPropertiesEncodeSize(); if (headerSize >= connection.getMinLargeMessageSize()) { throw BUNDLE.headerTooBig(); } StorageManager storageManager = ((ServerSessionImpl) session).getStorageManager(); long id = storageManager.generateID(); LargeServerMessage largeMessage = storageManager.createLargeMessage(id, message); ActiveMQBuffer body = message.getReadOnlyBodyBuffer(); byte[] bytes = new byte[body.readableBytes()]; body.readBytes(bytes); largeMessage.addBytes(bytes); largeMessage.releaseResources(); largeMessage.putLongProperty(Message.HDR_LARGE_BODY_SIZE, bytes.length); session.send(largeMessage, direct); largeMessage = null; }
public void sendInternalLarge(CoreMessage message, boolean direct) throws Exception { int headerSize = message.getHeadersAndPropertiesEncodeSize(); if (headerSize >= connection.getMinLargeMessageSize()) { throw BUNDLE.headerTooBig(); } StorageManager storageManager = ((ServerSessionImpl) session).getStorageManager(); long id = storageManager.generateID(); LargeServerMessage largeMessage = storageManager.createLargeMessage(id, message); ActiveMQBuffer body = message.getReadOnlyBodyBuffer(); byte[] bytes = new byte[body.readableBytes()]; body.readBytes(bytes); largeMessage.addBytes(bytes); largeMessage.releaseResources(); largeMessage.putLongProperty(Message.HDR_LARGE_BODY_SIZE, bytes.length); session.send(largeMessage, direct); largeMessage = null; }
public void testChangeBodyString(String newString) { CoreMessage coreMessage = decodeMessage(); coreMessage.putStringProperty("newProperty", "newValue"); ActiveMQBuffer legacyBuffer = coreMessage.getBodyBuffer(); legacyBuffer.resetWriterIndex(); legacyBuffer.clear(); TextMessageUtil.writeBodyText(legacyBuffer, SimpleString.toSimpleString(newString)); ByteBuf newbuffer = Unpooled.buffer(150000); coreMessage.sendBuffer(newbuffer, 0); newbuffer.readerIndex(0); CoreMessage newCoreMessage = new CoreMessage(); newCoreMessage.receiveBuffer(newbuffer); SimpleString newText = TextMessageUtil.readBodyText(newCoreMessage.getReadOnlyBodyBuffer()); Assert.assertEquals(newString, newText.toString()); // coreMessage.putStringProperty() }