private int getDeliveryAnnotationsForSendBufferSize() { if (deliveryAnnotationsForSendBuffer == null || deliveryAnnotationsForSendBuffer.getValue().isEmpty()) { return 0; } DroppingWritableBuffer droppingWritableBuffer = new DroppingWritableBuffer(); TLSEncode.getEncoder().setByteBuffer(droppingWritableBuffer); TLSEncode.getEncoder().writeObject(deliveryAnnotationsForSendBuffer); TLSEncode.getEncoder().setByteBuffer((WritableBuffer) null); return droppingWritableBuffer.position() + 1; }
@Override public EncodedMessage transform(Message msg) throws Exception { if( msg == null ) return null; try { if( msg.getBooleanProperty(prefixVendor + "NATIVE") ) { return null; } } catch (MessageFormatException e) { return null; } ProtonJMessage amqp = convert(msg); long messageFormat; try { messageFormat = msg.getLongProperty(this.messageFormatKey); } catch (MessageFormatException e) { return null; } ByteBuffer buffer = ByteBuffer.wrap(new byte[1024 * 4]); final DroppingWritableBuffer overflow = new DroppingWritableBuffer(); int c = amqp.encode(new CompositeWritableBuffer( new WritableBuffer.ByteBufferWrapper(buffer), overflow)); if( overflow.position() > 0 ) { buffer = ByteBuffer.wrap(new byte[1024 * 4 + overflow.position()]); c = amqp.encode(new WritableBuffer.ByteBufferWrapper(buffer)); } return new EncodedMessage(messageFormat, buffer.array(), 0, c); }
final DroppingWritableBuffer overflow = new DroppingWritableBuffer(); int c = amqp.encode(new CompositeWritableBuffer(new WritableBuffer.ByteBufferWrapper(buffer), overflow)); if( overflow.position() > 0 ) { buffer = ByteBuffer.wrap(new byte[1024*4+overflow.position()]); c = amqp.encode(new WritableBuffer.ByteBufferWrapper(buffer));