@Override public Message copy() { checkProperties(); checkEncode(); return new CoreMessage(this); }
@Override public int getEndOfBodyPosition() { if (endOfBodyPosition < 0) { endOfBodyPosition = getBodyBuffer().writerIndex(); } return endOfBodyPosition; }
@Override public Message setAddress(String address) { message.setAddress(address); return this; }
public CoreMessage(long id, int bufferSize, CoreMessageObjectPools coreMessageObjectPools) { this.initBuffer(bufferSize); this.setMessageID(id); this.coreMessageObjectPools = coreMessageObjectPools; }
public ClientMessageImpl(final byte type, final boolean durable, final long expiration, final long timestamp, final byte priority, final int initialMessageBufferSize) { this(type, durable, expiration, timestamp, priority, initialMessageBufferSize, null); }
false, new DummyOperationContext(), Collections.emptyMap()); try { CoreMessage message = new CoreMessage(storageManager.generateID(), 50); if (headers != null) { for (String header : headers.keySet()) { message.putStringProperty(new SimpleString(header), new SimpleString(headers.get(header))); message.setType((byte) type); message.setDurable(durable); message.setTimestamp(System.currentTimeMillis()); if (body != null) { if (type == Message.TEXT_TYPE) { message.getBodyBuffer().writeNullableSimpleString(new SimpleString(body)); } else { message.getBodyBuffer().writeBytes(Base64.decode(body)); message.setAddress(address); buffer.putLong(q); message.putBytesProperty(Message.HDR_ROUTE_TO_IDS, buffer.array()); return "" + message.getMessageID(); } finally { try {
private static ICoreMessage createServerMessage(MQTTSession session, SimpleString address, boolean retain, int qos) { long id = session.getServer().getStorageManager().generateID(); CoreMessage message = new CoreMessage(id, DEFAULT_SERVER_MESSAGE_BUFFER_SIZE, session.getCoreMessageObjectPools()); message.setAddress(address); message.putBooleanProperty(MQTT_MESSAGE_RETAIN_KEY, retain); message.putIntProperty(MQTT_QOS_LEVEL_KEY, qos); message.setType(Message.BYTES_TYPE); return message; }
@Override @Before public void setUp() throws Exception { super.setUp(); message = new CoreMessage().initBuffer(1024).setMessageID(1); }
@Override public void run() { try { ActiveMQBuffer buffer = ActiveMQBuffers.dynamicBuffer(10 * 1024); aligned.countDown(); Assert.assertTrue(startFlag.await(5, TimeUnit.SECONDS)); coreMessage.messageChanged(); coreMessage.sendBuffer(buffer.byteBuf(), 0); CoreMessage recMessage = new CoreMessage(); recMessage.receiveBuffer(buffer.byteBuf()); Assert.assertEquals(ADDRESS2, recMessage.getAddressSimpleString()); Assert.assertEquals(33, recMessage.getMessageID()); Assert.assertEquals(propValue, recMessage.getSimpleStringProperty(SimpleString.toSimpleString("str-prop"))); } catch (Throwable e) { e.printStackTrace(); errors.incrementAndGet(); } } };
@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) { } }
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; }
values[i] = id; CoreMessage message = new CoreMessage(id, 100); message.getBodyBuffer().writeBytes(new byte[1024]); CoreMessage message = new CoreMessage(seqGenerator.incrementAndGet(), 100); survivingMsgs.add(message.getMessageID());
@Override public Message decode(ActiveMQBuffer buffer, Message record) { // the caller must consume the first byte already, as that will be used to decide what persister (protocol) to use long id = buffer.readLong(); SimpleString address = buffer.readNullableSimpleString(); record = new CoreMessage(); record.reloadPersistence(buffer); record.setMessageID(id); record.setAddress(address); return record; } }
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; } }
@Override public Message putBooleanProperty(SimpleString key, boolean value) { message.putBooleanProperty(key, value); return this; }
/** * Puts a String property in this message. * * @param key property name * @param value property value */ @Override public Message putStringProperty(String key, String value) { message.putStringProperty(key, value); return this; }
@Override public Message setMessageID(long id) { message.setMessageID(id); return this; }
@Override public void reloadPersistence(ActiveMQBuffer record) { int size = record.readInt(); initBuffer(size); buffer.setIndex(0, 0).writeBytes(record.byteBuf(), size); decode(false); }
/** * Returns the messageID. * <br> * The messageID is set when the message is handled by the server. */ @Override public long getMessageID() { return message.getMessageID(); }
/** * Sets whether this message is durable or not. * * @param durable {@code true} to flag this message as durable, {@code false} else */ @Override public Message setDurable(boolean durable) { message.setDurable(durable); return message; }