@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
/** * Used by ActiveMQ Artemis management service. */ public static void storeResult(final CoreMessage message, final Object result) throws Exception { String resultString; if (result != null) { // Result is stored in body, also encoded as JSON array of length 1 JsonArray jsonArray = JsonUtil.toJSONArray(new Object[]{result}); resultString = jsonArray.toString(); } else { resultString = null; } message.getBodyBuffer().writeNullableSimpleString(SimpleString.toSimpleString(resultString)); }
@Test public void testSaveReceiveLimitedBytes() { CoreMessage empty = new CoreMessage().initBuffer(100); System.out.println("R " + empty.getBodyBuffer().readerIndex() + " W " + empty.getBodyBuffer().writerIndex()); empty.getBodyBuffer().writeByte((byte)7); System.out.println("R " + empty.getBodyBuffer().readerIndex() + " W " + empty.getBodyBuffer().writerIndex()); ByteBuf buffer = Unpooled.buffer(200); empty.sendBuffer(buffer, 0); CoreMessage empty2 = new CoreMessage(); empty2.receiveBuffer(buffer); Assert.assertEquals((byte)7, empty2.getBodyBuffer().readByte()); System.out.println("Readable :: " + empty2.getBodyBuffer().readerIndex() + " writer :" + empty2.getBodyBuffer().writerIndex()); try { empty2.getBodyBuffer().readByte(); Assert.fail("should throw exception"); } catch (Exception expected) { } }
private CoreMessage createMessage(final long id, final PagingStore store, final SimpleString destination, final ActiveMQBuffer buffer) { CoreMessage msg = new CoreMessage(id, 50 + buffer.capacity()); msg.setAddress(destination); msg.setContext(store); msg.getBodyBuffer().resetReaderIndex(); msg.getBodyBuffer().resetWriterIndex(); msg.getBodyBuffer().writeBytes(buffer, buffer.capacity()); return msg; }
public static ICoreMessage embedAsCoreMessage(Message source) { if (source instanceof ICoreMessage) { return (ICoreMessage) source; } else { Persister persister = source.getPersister(); CoreMessage message = new CoreMessage(source.getMessageID(), persister.getEncodeSize(source) + signature.length + CoreMessage.BODY_OFFSET).setType(Message.EMBEDDED_TYPE); ActiveMQBuffer buffer = message.getBodyBuffer(); buffer.writeBytes(signature); persister.encode(buffer, source); return message; } }
@Test public void testGenerateEmpty() { CoreMessage empty = new CoreMessage().initBuffer(100); ByteBuf buffer = Unpooled.buffer(200); empty.sendBuffer(buffer, 0); CoreMessage empty2 = new CoreMessage(); empty2.receiveBuffer(buffer); try { empty2.getBodyBuffer().readLong(); Assert.fail("should throw exception"); } catch (Exception expected) { } }
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() }
@Test public void testStoreCore() throws Throwable { ActiveMQServer server = createServer(true); server.start(); CoreMessage message = new CoreMessage().initBuffer(10 * 1024).setDurable(true); message.setMessageID(333); CoreProtocolManagerFactory factory = (CoreProtocolManagerFactory) server.getRemotingService().getProtocolFactoryMap().get("CORE"); Assert.assertNotNull(factory); message.getBodyBuffer().writeByte((byte)'Z'); server.getStorageManager().storeMessage(message); server.getStorageManager().stop(); JournalStorageManager journalStorageManager = (JournalStorageManager) server.getStorageManager(); List<RecordInfo> committedRecords = new LinkedList<>(); List<PreparedTransactionInfo> preparedTransactions = new LinkedList<>(); TransactionFailureCallback transactionFailure = new TransactionFailureCallback() { @Override public void failedTransaction(long transactionID, List<RecordInfo> records, List<RecordInfo> recordsToDelete) { } }; try { journalStorageManager.getMessageJournal().start(); journalStorageManager.getMessageJournal().load(committedRecords, preparedTransactions, transactionFailure); Assert.assertEquals(1, committedRecords.size()); } finally { journalStorageManager.getMessageJournal().stop(); } }