@Override public BytesMessage createBytesMessage() throws JMSException { checkClosed(); ActiveMQBytesMessage message = new ActiveMQBytesMessage(session); message.setEnable1xPrefixes(enable1xPrefixes); return message; }
@Override public void doBeforeSend() throws Exception { reset(); }
/** * Foreign message constructor */ public ActiveMQBytesMessage(final BytesMessage foreign, final ClientSession session) throws JMSException { super(foreign, ActiveMQBytesMessage.TYPE, session); foreign.reset(); byte[] buffer = new byte[1024]; int n = foreign.readBytes(buffer); while (n != -1) { writeBytes(buffer, 0, n); n = foreign.readBytes(buffer); } }
@Override public void writeLong(final long value) throws JMSException { checkWrite(); bytesWriteLong(message.getBodyBuffer(), value); }
@Override public long getBodyLength() throws JMSException { checkRead(); return bodyLength; }
msg = new ActiveMQBytesMessage(message, session); break;
@Test public void testCopyOnForeignBytesMessage() throws JMSException { ClientMessage clientMessage = new ClientMessageImpl(ActiveMQTextMessage.TYPE, true, 0, System.currentTimeMillis(), (byte) 4, 1000); ClientSession session = new FakeSession(clientMessage); BytesMessage foreignBytesMessage = new SimpleJMSBytesMessage(); for (int i = 0; i < 20; i++) { foreignBytesMessage.writeByte((byte) i); } ActiveMQBytesMessage copy = new ActiveMQBytesMessage(foreignBytesMessage, session); foreignBytesMessage.reset(); copy.reset(); MessageHeaderTestBase.ensureEquivalent(foreignBytesMessage, copy); }
@Override public void clearBody() throws JMSException { super.clearBody(); try { getBuffer().clear(); } catch (RuntimeException e) { JMSException e2 = new JMSException(e.getMessage()); e2.initCause(e); throw e2; } }
/** * Generate random messages between 100 bytes and maxMessageSize * * @param session * @return * @throws JMSException * @throws ActiveMQException */ protected BytesMessage createMessage(int count, Session session, int maxMessageSize, AtomicLong publishedMessageSize) throws JMSException, ActiveMQException { final ActiveMQBytesMessage message = (ActiveMQBytesMessage) session.createBytesMessage(); final Random randomSize = new Random(); int size = randomSize.nextInt((maxMessageSize - 100) + 1) + 100; final byte[] data = new byte[size]; final Random rng = new Random(); rng.nextBytes(data); message.writeBytes(data); if (publishedMessageSize != null) { publishedMessageSize.addAndGet(message.getCoreMessage().getPersistentSize()); } return message; } }
@Override public void writeFloat(final float value) throws JMSException { checkWrite(); bytesWriteFloat(message.getBodyBuffer(), value); }
@Override public int readBytes(final byte[] value, final int length) throws JMSException { checkRead(); return bytesReadBytes(message.getBodyBuffer(), value, length); }
activeMQJmsMessage = new ActiveMQBytesMessage((BytesMessage) jmsMessage, clientSession); } else if (jmsMessage instanceof MapMessage) { activeMQJmsMessage = new ActiveMQMapMessage((MapMessage) jmsMessage, clientSession);
@Override public void clearBody() throws JMSException { super.clearBody(); try { getBuffer().clear(); } catch (RuntimeException e) { JMSException e2 = new JMSException(e.getMessage()); e2.initCause(e); throw e2; } }
@Override public void writeBoolean(final boolean value) throws JMSException { checkWrite(); bytesWriteBoolean(message.getBodyBuffer(), value); }
@Override public int readBytes(final byte[] value) throws JMSException { checkRead(); return bytesReadBytes(message.getBodyBuffer(), value); }
@Override public BytesMessage createBytesMessage() throws JMSException { checkClosed(); ActiveMQBytesMessage message; if (enable1xPrefixes) { message = new ActiveMQBytesCompatibleMessage(session); } else { message = new ActiveMQBytesMessage(session); } return message; }
@Override public BytesMessage createBytesMessage() throws JMSException { checkClosed(); ActiveMQBytesMessage message = new ActiveMQBytesMessage(session); message.setEnable1xPrefixes(enable1xPrefixes); return message; }
/** * Foreign message constructor */ public ActiveMQBytesMessage(final BytesMessage foreign, final ClientSession session) throws JMSException { super(foreign, ActiveMQBytesMessage.TYPE, session); foreign.reset(); byte[] buffer = new byte[1024]; int n = foreign.readBytes(buffer); while (n != -1) { writeBytes(buffer, 0, n); n = foreign.readBytes(buffer); } }
@Override public void doBeforeSend() throws Exception { reset(); }
@Override public void clearBody() throws JMSException { super.clearBody(); try { getBuffer().clear(); } catch (RuntimeException e) { JMSException e2 = new JMSException(e.getMessage()); e2.initCause(e); throw e2; } }