Search in sources :

Example 41 with QpidByteBuffer

use of org.apache.qpid.server.bytebuffer.QpidByteBuffer in project qpid-broker-j by apache.

the class MessageConverter_1_0_to_v0_8Test method testAmqpValueWithList.

public void testAmqpValueWithList() throws Exception {
    final List<Object> originalList = new ArrayList<>();
    originalList.add(new Binary(new byte[] { 0x00, (byte) 0xFF }));
    originalList.add(42);
    originalList.add(null);
    final AmqpValue amqpValue = new AmqpValue(originalList);
    Message_1_0 sourceMessage = createTestMessage(amqpValue.createEncodingRetainingSection());
    final AMQMessage convertedMessage = _converter.convert(sourceMessage, mock(NamedAddressSpace.class));
    assertEquals("Unexpected mime type", "jms/stream-message", convertedMessage.getMessageHeader().getMimeType());
    final QpidByteBuffer content = convertedMessage.getContent(0, (int) convertedMessage.getSize());
    List<Object> convertedList = new JmsStreamMessageToList().toObject(getBytes(content));
    assertEquals("Unexpected size", originalList.size(), convertedList.size());
    assertArrayEquals("Unexpected binary item", ((Binary) originalList.get(0)).getArray(), (byte[]) convertedList.get(0));
    assertEquals("Unexpected int item", originalList.get(1), convertedList.get(1));
    assertEquals("Unexpected null item", originalList.get(2), convertedList.get(2));
}
Also used : JmsStreamMessageToList(org.apache.qpid.server.typedmessage.mimecontentconverter.JmsStreamMessageToList) ArrayList(java.util.ArrayList) NamedAddressSpace(org.apache.qpid.server.model.NamedAddressSpace) Message_1_0(org.apache.qpid.server.protocol.v1_0.Message_1_0) QpidByteBuffer(org.apache.qpid.server.bytebuffer.QpidByteBuffer) Binary(org.apache.qpid.server.protocol.v1_0.type.Binary) AmqpValue(org.apache.qpid.server.protocol.v1_0.type.messaging.AmqpValue) AMQMessage(org.apache.qpid.server.protocol.v0_8.AMQMessage)

Example 42 with QpidByteBuffer

use of org.apache.qpid.server.bytebuffer.QpidByteBuffer in project qpid-broker-j by apache.

the class MessageConverter_1_0_to_v0_8Test method doTestConvertOfDataSectionForTextualType.

private void doTestConvertOfDataSectionForTextualType(final String contentType) throws Exception {
    final String expected = "testContent";
    final Data value = new Data(new Binary(expected.getBytes(UTF_8)));
    final Properties properties = new Properties();
    properties.setContentType(Symbol.valueOf(contentType));
    Message_1_0 sourceMessage = createTestMessage(properties, value.createEncodingRetainingSection());
    final AMQMessage convertedMessage = _converter.convert(sourceMessage, mock(NamedAddressSpace.class));
    final QpidByteBuffer content = convertedMessage.getContent(0, (int) convertedMessage.getSize());
    assertEquals("Unexpected content", expected, new String(getBytes(content), UTF_8));
    assertEquals("Unexpected mime type", "text/plain", convertedMessage.getMessageHeader().getMimeType());
}
Also used : NamedAddressSpace(org.apache.qpid.server.model.NamedAddressSpace) Message_1_0(org.apache.qpid.server.protocol.v1_0.Message_1_0) Data(org.apache.qpid.server.protocol.v1_0.type.messaging.Data) QpidByteBuffer(org.apache.qpid.server.bytebuffer.QpidByteBuffer) Binary(org.apache.qpid.server.protocol.v1_0.type.Binary) ApplicationProperties(org.apache.qpid.server.protocol.v1_0.type.messaging.ApplicationProperties) Properties(org.apache.qpid.server.protocol.v1_0.type.messaging.Properties) AMQMessage(org.apache.qpid.server.protocol.v0_8.AMQMessage)

Example 43 with QpidByteBuffer

use of org.apache.qpid.server.bytebuffer.QpidByteBuffer in project qpid-broker-j by apache.

the class Deserializer method readUUID.

UUID readUUID() throws IOException {
    byte[] data = readBytes(16);
    try (QpidByteBuffer buf = QpidByteBuffer.wrap(data)) {
        long msb = buf.getLong();
        long lsb = buf.getLong();
        return new UUID(msb, lsb);
    }
}
Also used : QpidByteBuffer(org.apache.qpid.server.bytebuffer.QpidByteBuffer) UUID(java.util.UUID)

Example 44 with QpidByteBuffer

use of org.apache.qpid.server.bytebuffer.QpidByteBuffer in project qpid-broker-j by apache.

the class MessageStoreSerializer_v1 method deserializeMessages.

private Record deserializeMessages(final Map<Long, StoredMessage<?>> messageNumberMap, final MessageStore store, final Deserializer deserializer, Record record) throws IOException {
    while (record.getType() == RecordType.MESSAGE) {
        MessageRecord messageRecord = (MessageRecord) record;
        long originalMessageNumber = messageRecord.getMessageNumber();
        byte[] metaData = messageRecord.getMetaData();
        final MessageMetaDataType metaDataType = MessageMetaDataTypeRegistry.fromOrdinal(metaData[0] & 0xff);
        final MessageHandle<StorableMessageMetaData> handle;
        try (QpidByteBuffer buf = QpidByteBuffer.wrap(metaData, 1, metaData.length - 1)) {
            try {
                StorableMessageMetaData storableMessageMetaData = metaDataType.createMetaData(buf);
                handle = store.addMessage(storableMessageMetaData);
            } catch (ConnectionScopedRuntimeException e) {
                throw new IllegalArgumentException("Could not deserialize message metadata", e);
            }
        }
        try (QpidByteBuffer buf = QpidByteBuffer.wrap(messageRecord.getContent())) {
            handle.addContent(buf);
        }
        final StoredMessage<StorableMessageMetaData> storedMessage = handle.allContentAdded();
        messageNumberMap.put(originalMessageNumber, storedMessage);
        storedMessage.flowToDisk();
        record = deserializer.readRecord();
    }
    return record;
}
Also used : ConnectionScopedRuntimeException(org.apache.qpid.server.util.ConnectionScopedRuntimeException) QpidByteBuffer(org.apache.qpid.server.bytebuffer.QpidByteBuffer) StorableMessageMetaData(org.apache.qpid.server.store.StorableMessageMetaData) MessageMetaDataType(org.apache.qpid.server.plugin.MessageMetaDataType)

Example 45 with QpidByteBuffer

use of org.apache.qpid.server.bytebuffer.QpidByteBuffer in project qpid-broker-j by apache.

the class NonBlockingConnection method readFromNetwork.

protected long readFromNetwork() throws IOException {
    QpidByteBuffer buffer = _delegate.getNetInputBuffer();
    long read = buffer.read(_socketChannel);
    if (read == -1) {
        _closed.set(true);
    }
    _partialRead = read != 0;
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Read " + read + " byte(s)");
    }
    return read;
}
Also used : QpidByteBuffer(org.apache.qpid.server.bytebuffer.QpidByteBuffer)

Aggregations

QpidByteBuffer (org.apache.qpid.server.bytebuffer.QpidByteBuffer)185 NamedAddressSpace (org.apache.qpid.server.model.NamedAddressSpace)61 Message_1_0 (org.apache.qpid.server.protocol.v1_0.Message_1_0)61 Binary (org.apache.qpid.server.protocol.v1_0.type.Binary)42 Data (org.apache.qpid.server.protocol.v1_0.type.messaging.Data)30 MessageTransferMessage (org.apache.qpid.server.protocol.v0_10.MessageTransferMessage)29 AMQMessage (org.apache.qpid.server.protocol.v0_8.AMQMessage)29 ApplicationProperties (org.apache.qpid.server.protocol.v1_0.type.messaging.ApplicationProperties)29 Properties (org.apache.qpid.server.protocol.v1_0.type.messaging.Properties)28 ArrayList (java.util.ArrayList)22 AmqpValue (org.apache.qpid.server.protocol.v1_0.type.messaging.AmqpValue)20 Test (org.junit.Test)13 MapToJmsMapMessage (org.apache.qpid.server.typedmessage.mimecontentconverter.MapToJmsMapMessage)12 EncodingRetainingSection (org.apache.qpid.server.protocol.v1_0.type.messaging.EncodingRetainingSection)10 UnsignedInteger (org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger)9 Transfer (org.apache.qpid.server.protocol.v1_0.type.transport.Transfer)9 SpecificationTest (org.apache.qpid.tests.protocol.SpecificationTest)9 ByteBuffer (java.nio.ByteBuffer)8 LinkedHashMap (java.util.LinkedHashMap)8 JmsMapMessageToMap (org.apache.qpid.server.typedmessage.mimecontentconverter.JmsMapMessageToMap)8