public void setInputStream(final InputStream input) throws JMSException { checkStream(); if (readOnly) { throw ActiveMQJMSClientBundle.BUNDLE.messageNotWritable(); } message.setBodyInputStream(input); }
public void setInputStream(final InputStream input) throws JMSException { checkStream(); if (readOnly) { throw ActiveMQJMSClientBundle.BUNDLE.messageNotWritable(); } message.setBodyInputStream(input); }
public void setInputStream(final InputStream input) throws JMSException { checkStream(); if (readOnly) { throw ActiveMQJMSClientBundle.BUNDLE.messageNotWritable(); } message.setBodyInputStream(input); }
public void setInputStream(final InputStream input) throws JMSException { checkStream(); if (readOnly) { throw ActiveMQJMSClientBundle.BUNDLE.messageNotWritable(); } message.setBodyInputStream(input); }
public void setInputStream(final InputStream input) throws JMSException { checkStream(); if (readOnly) { throw ActiveMQJMSClientBundle.BUNDLE.messageNotWritable(); } message.setBodyInputStream(input); }
/** * Large message version of {@link #setBody(int, ClientMessage)}. * * @param i * @param message */ protected static void setLargeMessageBody(final int i, final ClientMessage message) { try { message.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(LARGE_MESSAGE_SIZE)); } catch (Exception e) { throw new RuntimeException(e); } }
private File processMessageBody(final ICoreMessage message, boolean decodeTextMessage) throws XMLStreamException, IOException { File tempFileName = null; boolean isLarge = false; for (int i = 0; i < reader.getAttributeCount(); i++) { String attributeName = reader.getAttributeLocalName(i); if (XmlDataConstants.MESSAGE_IS_LARGE.equals(attributeName)) { isLarge = Boolean.parseBoolean(reader.getAttributeValue(i)); } } reader.next(); if (logger.isDebugEnabled()) { logger.debug("XMLStreamReader impl: " + reader); } if (isLarge) { tempFileName = File.createTempFile("largeMessage", ".tmp"); if (logger.isDebugEnabled()) { logger.debug("Creating temp file " + tempFileName + " for large message."); } try (OutputStream out = new BufferedOutputStream(new FileOutputStream(tempFileName))) { getMessageBodyBytes(bytes -> out.write(bytes), (message.toCore().getType() == Message.TEXT_TYPE) && decodeTextMessage); } FileInputStream fileInputStream = new FileInputStream(tempFileName); BufferedInputStream bufferedInput = new BufferedInputStream(fileInputStream); ((ClientMessage) message).setBodyInputStream(bufferedInput); } else { getMessageBodyBytes(bytes -> message.getBodyBuffer().writeBytes(bytes), (message.toCore().getType() == Message.TEXT_TYPE) && decodeTextMessage); } return tempFileName; }
private File processMessageBody(final ICoreMessage message, boolean decodeTextMessage) throws XMLStreamException, IOException { File tempFileName = null; boolean isLarge = false; for (int i = 0; i < reader.getAttributeCount(); i++) { String attributeName = reader.getAttributeLocalName(i); if (XmlDataConstants.MESSAGE_IS_LARGE.equals(attributeName)) { isLarge = Boolean.parseBoolean(reader.getAttributeValue(i)); } } reader.next(); if (logger.isDebugEnabled()) { logger.debug("XMLStreamReader impl: " + reader); } if (isLarge) { tempFileName = File.createTempFile("largeMessage", ".tmp"); if (logger.isDebugEnabled()) { logger.debug("Creating temp file " + tempFileName + " for large message."); } try (OutputStream out = new BufferedOutputStream(new FileOutputStream(tempFileName))) { getMessageBodyBytes(bytes -> out.write(bytes), (message.toCore().getType() == Message.TEXT_TYPE) && decodeTextMessage); } FileInputStream fileInputStream = new FileInputStream(tempFileName); BufferedInputStream bufferedInput = new BufferedInputStream(fileInputStream); ((ClientMessage) message).setBodyInputStream(bufferedInput); } else { getMessageBodyBytes(bytes -> message.getBodyBuffer().writeBytes(bytes), (message.toCore().getType() == Message.TEXT_TYPE) && decodeTextMessage); } return tempFileName; }
private ClientMessage createLargeMessage(ClientSession session, long largeMessageSize) throws Exception { File fileInput = new File(getTemporaryDir(), "huge_message_to_send.dat"); createFile(fileInput, largeMessageSize); System.out.println("File created at: " + fileInput.getAbsolutePath()); ClientMessage message = session.createMessage(Message.BYTES_TYPE, true); FileInputStream fileInputStream = new FileInputStream(fileInput); BufferedInputStream bufferedInput = new BufferedInputStream(fileInputStream); message.setBodyInputStream(bufferedInput); return message; }
protected ClientMessage createLargeClientMessageStreaming(final ClientSession session, final long numberOfBytes, final boolean persistent) throws Exception { ClientMessage clientMessage = session.createMessage(persistent); clientMessage.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(numberOfBytes)); return clientMessage; }
protected void sendInRange(final int node, final String address, final int msgStart, final int msgEnd, final boolean durable, final SimpleString key, final SimpleString val) throws Exception { ClientSessionFactory sf = sfs[node]; if (sf == null) { throw new IllegalArgumentException("No sf at " + node); } ClientSession session = sf.createSession(false, true, true); try { ClientProducer producer = session.createProducer(address); for (int i = msgStart; i < msgEnd; i++) { ClientMessage message = session.createMessage(durable); if (isLargeMessage()) { message.setBodyInputStream(createFakeLargeStream(getLargeMessageSize())); } message.putStringProperty(key, val); message.putIntProperty(ClusterTestBase.COUNT_PROP, i); producer.send(message); } } finally { session.close(); } }
message.setBodyInputStream(createFakeLargeStream(getLargeMessageSize()));
message.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(numberOfBytes)); } else { LargeMessageTestBase.log.debug("Sending message (array)" + i);
@Test public void testSendServerMessageWithValidatedUser() throws Exception { ActiveMQJAASSecurityManager securityManager = new ActiveMQJAASSecurityManager("PropertiesLogin"); ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(createDefaultInVMConfig().setSecurityEnabled(true), ManagementFactory.getPlatformMBeanServer(), securityManager, false)); server.getConfiguration().setPopulateValidatedUser(true); Role role = new Role("programmers", true, true, true, true, true, true, true, true, true, true); Set<Role> roles = new HashSet<>(); roles.add(role); server.getSecurityRepository().addMatch("#", roles); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory sf = createSessionFactory(locator); try { ClientSession session = sf.createSession("first", "secret", false, true, true, false, 0); ClientMessage clientMessage = session.createMessage(false); clientMessage.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(ActiveMQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE)); session.createQueue("A", RoutingType.ANYCAST, "A"); ClientProducer prod = session.createProducer("A"); prod.send(clientMessage); session.commit(); session.start(); ClientConsumer cons = session.createConsumer("A"); ClientMessage msg = cons.receive(5000); assertEquals("first", msg.getValidatedUserID()); } finally { sf.close(); locator.close(); server.stop(); } }
@Test public void testLargeMessage() throws Exception { ClientProducer producer = clientSessionTxReceives.createProducer(address); ClientConsumer consumer = clientSessionTxReceives.createConsumer(qName1); SimpleString rh = new SimpleString("SMID1"); for (int i = 0; i < 50; i++) { ClientMessage message = clientSession.createMessage(true); message.setBodyInputStream(createFakeLargeStream(300 * 1024)); message.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh); producer.send(message); clientSession.commit(); } clientSessionTxReceives.start(); ClientMessage m = consumer.receive(1000); Assert.assertNotNull(m); m.acknowledge(); Assert.assertNull(consumer.receiveImmediate()); clientSessionTxReceives.commit(); }
ClientProducer producer = clientSession.createProducer(adName); ClientMessage clientFile = clientSession.createMessage(true); clientFile.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(SIZE)); producer.send(clientFile); clientSession.start();
@Test public void testSimpleSendOnAvoid() throws Exception { ActiveMQServer server = createServer(true, isNetty()); server.start(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = addClientSession(sf.createSession(false, true, true)); session.createQueue(ADDRESS, ADDRESS, true); ClientProducer producer = session.createProducer(ADDRESS); int minLargeSize = locator.getMinLargeMessageSize(); TestLargeMessageInputStream input = new TestLargeMessageInputStream(minLargeSize); ClientMessage clientFile = session.createMessage(true); clientFile.setBodyInputStream(input.clone()); producer.send(clientFile); session.start(); //no file should be in the dir as we send it as regular validateNoFilesOnLargeDir(); ClientConsumer consumer = session.createConsumer(ADDRESS); ClientMessage msg1 = consumer.receive(1000); Assert.assertNotNull(msg1); for (int i = 0; i < input.getSize(); i++) { byte b = msg1.getBodyBuffer().readByte(); Assert.assertEquals("incorrect char ", input.getChar(i), b); } msg1.acknowledge(); consumer.close(); session.close(); }
for (int i = 0; i < num; i++) { ClientMessage clientFile = session.createMessage(true); clientFile.setBodyInputStream(input.clone());
for (int i = 0; i < num; i++) { ClientMessage clientFile = session.createMessage(true); clientFile.setBodyInputStream(input.clone());
msg.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(SIZE)); msg.putIntProperty(new SimpleString("key"), i); producer.send(msg);