/** * Creates a TransportConfiguration providing the class name of the {@link org.apache.activemq.artemis.spi.core.remoting.ConnectorFactory} * and any parameters needed. * * @param className The class name of the ConnectorFactory * @param params The parameters needed by the ConnectorFactory */ public TransportConfiguration(final String className, final Map<String, Object> params) { this(className, params, UUIDGenerator.getInstance().generateStringUUID()); }
public ClientProducerImpl(final ClientSessionInternal session, final SimpleString address, final TokenBucketLimiter rateLimiter, final boolean blockOnNonDurableSend, final boolean blockOnDurableSend, final boolean autoGroup, final SimpleString groupID, final int minLargeMessageSize, final SessionContext sessionContext) { this.sessionContext = sessionContext; this.session = session; this.address = address; this.rateLimiter = rateLimiter; this.blockOnNonDurableSend = blockOnNonDurableSend; this.blockOnDurableSend = blockOnDurableSend; if (autoGroup) { this.groupID = UUIDGenerator.getInstance().generateSimpleStringUUID(); } else { this.groupID = groupID; } this.minLargeMessageSize = minLargeMessageSize; if (address != null) { producerCredits = session.getCredits(address, false); } else { producerCredits = null; } }
private byte[] getAddressBytes() { if (address == null) { address = UUIDGenerator.getHardwareAddress(); if (address == null) { address = generateDummyAddress(); } } return address; }
@Test public void testXADuplicateDetectionPrepareAndRollback() throws Exception { ClientSession session = sf.createSession(true, false, false); Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); session.start(xid, XAResource.TMNOFLAGS); session.start(); final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue"); session.createQueue(queueName, queueName, null, false); ClientProducer producer = session.createProducer(queueName); session.close(); Xid xid2 = new XidImpl("xa2".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); session = sf.createSession(true, false, false); session.start(xid2, XAResource.TMNOFLAGS); session.close(); session = sf.createSession(false, false, false); session.start();
@Test //(timeout = 30000) // QueueAutoCreationTest was created to validate auto-creation of queues // and this test was added to validate a regression: https://issues.apache.org/jira/browse/ARTEMIS-2238 public void testAutoCreateOnTopic() throws Exception { ConnectionFactory factory = new ActiveMQConnectionFactory(); Connection connection = factory.createConnection(); SimpleString addressName = UUIDGenerator.getInstance().generateSimpleStringUUID(); System.out.println("Address is " + addressName); clientSession.createAddress(addressName, RoutingType.ANYCAST, false); Topic topic = new ActiveMQTopic(addressName.toString()); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(topic); for (int i = 0; i < 10; i++) { producer.send(session.createTextMessage("hello")); } Assert.assertTrue(((ActiveMQConnection)connection).containsKnownDestination(addressName)); }
session.createQueue(QUEUE_NAME, RoutingType.MULTICAST, QUEUE_NAME, true); ClientProducer producer = session.createProducer(QUEUE_NAME); ClientMessage msg = session.createMessage(Message.BYTES_TYPE, true); msg.setExpiration(Long.MAX_VALUE); msg.setPriority((byte) 0); msg.setTimestamp(Long.MAX_VALUE - 1); msg.setUserID(UUIDGenerator.getInstance().generateUUID()); producer.send(msg); session.close(); locator.close(); server.stop(); xmlDataExporter.process(xmlOutputStream, server.getConfiguration().getBindingsDirectory(), server.getConfiguration().getJournalDirectory(), server.getConfiguration().getPagingDirectory(), server.getConfiguration().getLargeMessagesDirectory()); System.out.print(new String(xmlOutputStream.toByteArray())); locator = createInVMNonHALocator(); factory = createSessionFactory(locator); session = factory.createSession(false, true, true);
public void testRollbackPaging(final boolean restartServer) throws Exception { Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); SimpleString pageQueue = new SimpleString("pagequeue"); addressSettings.put(pageQueue.toString(), pageAddressSettings); clientSession.createQueue(pageQueue, pageQueue, null, true); clientSession.start(xid, XAResource.TMNOFLAGS); ClientProducer pageProducer = clientSession.createProducer(pageQueue);
@Test public void testCommitPreparedTransactions() throws Exception { SimpleString recQueue = new SimpleString("BasicXaTestqRec"); SimpleString sendQueue = new SimpleString("BasicXaTestqSend"); byte[] globalTransactionId = UUIDGenerator.getInstance().generateStringUUID().getBytes(); Xid xid = new XidImpl("xa1".getBytes(), 1, globalTransactionId); Xid xid2 = new XidImpl("xa2".getBytes(), 1, globalTransactionId); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator); ClientSession clientSession = csf.createSession(true, false, false); clientSession.createQueue(recQueue, recQueue, null, true); clientSession.createQueue(sendQueue, sendQueue, null, true); ClientMessage m1 = createTextMessage(clientSession, ""); m1.putStringProperty("m1", "m1"); ClientProducer clientProducer = clientSession.createProducer(recQueue); clientProducer.send(m1); locator.close(); ClientSession receiveClientSession = receiveCsf.createSession(true, false, false); ClientConsumer consumer = receiveClientSession.createConsumer(recQueue); ClientSession sendClientSession = sendCsf.createSession(true, false, false); ClientProducer producer = sendClientSession.createProducer(sendQueue);
public void internalTest() throws Exception { SimpleString propValue = UUIDGenerator.getInstance().generateSimpleStringUUID(); UUID userID = UUIDGenerator.getInstance().generateUUID(); String body = UUIDGenerator.getInstance().generateStringUUID(); ClientMessageImpl message = new ClientMessageImpl(MESSAGE_TYPE, DURABLE, EXPIRATION, TIMESTAMP, PRIORITY, 10 * 1024, objectPools); TextMessageUtil.writeBodyText(message.getBodyBuffer(), SimpleString.toSimpleString(body)); message.getProperties().putSimpleStringProperty(SimpleString.toSimpleString("str-prop"), propValue); coreMessage.setAddress(ADDRESS2.toString()); coreMessage.setMessageID(33);
public void testMultipleTxSendWithRollback(final boolean stopServer) throws Exception { Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); Xid xid2 = new XidImpl("xa2".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); ClientMessage m1 = createTextMessage("m1"); ClientMessage m2 = createTextMessage("m2"); ClientMessage m7 = createTextMessage("m7"); ClientMessage m8 = createTextMessage("m8"); ClientSession clientSession2 = sessionFactory.createSession(true, false, true); ClientProducer clientProducer2 = clientSession2.createProducer(atestq); clientSession2.start(xid2, XAResource.TMNOFLAGS); clientProducer2.send(m1); clientProducer2.send(m2); clientProducer2.send(m3); clientProducer2.send(m4); clientSession2.end(xid2, XAResource.TMSUCCESS); clientSession2.prepare(xid2); clientSession2.close();
public SimpleString generateSimpleStringUUID() { return new SimpleString(generateStringUUID()); }
private StompSession internalGetSession(StompConnection connection, Map<Object, StompSession> sessions, Object id, boolean transacted) throws Exception { StompSession stompSession = sessions.get(id); if (stompSession == null) { stompSession = new StompSession(connection, this, server.getStorageManager().newContext(server.getExecutorFactory().getExecutor())); String name = UUIDGenerator.getInstance().generateStringUUID(); ServerSession session = server.createSession(name, connection.getLogin(), connection.getPasscode(), ActiveMQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE, connection, !transacted, false, false, false, null, stompSession, true, server.newOperationContext(), getPrefixes()); stompSession.setServerSession(session); sessions.put(id, stompSession); } server.getStorageManager().setContext(stompSession.getContext()); return stompSession; }
@Test public void testNonPersistentMultipleIDs() throws Exception { for (int i = 0; i < 10; i++) { Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); ClientMessage m1 = createTextMessage("m1", false); ClientMessage m2 = createTextMessage("m2", false); ClientMessage m3 = createTextMessage("m3", false); ClientMessage m4 = createTextMessage("m4", false); clientSession.start(xid, XAResource.TMNOFLAGS); clientProducer.send(m1); clientProducer.send(m2); clientProducer.send(m3); clientProducer.send(m4); clientSession.end(xid, XAResource.TMSUCCESS); clientSession.prepare(xid); if (i == 2) { clientSession.commit(xid, false); } recreateClients(); } stopAndRestartServer(); Xid[] xids = clientSession.recover(XAResource.TMSTARTRSCAN); Assert.assertEquals(9, xids.length); }
ClientSession.AddressQuery query = clientSession.addressQuery(address); clientSession.createAddress(address, RoutingType.ANYCAST, true); if (destination.isTemporary()) { clientSession.createTemporaryQueue(address, RoutingType.ANYCAST, address); } else { createQueue(destination, RoutingType.ANYCAST, address, null, true, true, query.getDefaultMaxConsumers(), query.isDefaultPurgeOnNoConsumers(), query.isDefaultExclusive(), query.isDefaultLastValueQueue()); UUID uid = UUIDGenerator.getInstance().generateUUID();
void prepare() throws Exception { session = sf.createSession(true, true, 0); queueName = UUIDGenerator.getInstance().generateStringUUID(); session.createQueue(dest, RoutingType.ANYCAST, queueName); consumer = session.createConsumer(queueName); consumer.setMessageHandler(this); }
protected ClientMessage createActiveMQMessage(HttpHeaders headers, byte[] body, boolean durable, Long ttl, Long expiration, Integer priority, ClientSession session) throws Exception { ClientMessage message = session.createMessage(Message.BYTES_TYPE, durable); // HORNETQ-962 UUID uid = UUIDGenerator.getInstance().generateUUID(); message.setUserID(uid); if (expiration != null) { message.setExpiration(expiration.longValue()); } else if (ttl != null) { message.setExpiration(System.currentTimeMillis() + ttl.longValue()); } else if (producerTimeToLive > 0) { message.setExpiration(System.currentTimeMillis() + producerTimeToLive); } if (priority != null) { byte p = priority.byteValue(); if (p >= 0 && p <= 9) { message.setPriority(p); } } HttpMessageHelper.writeHttpMessage(headers, body, message); return message; } }
@Override public void onMessage(final ClientMessage message) { Xid xid = new XidImpl(UUIDGenerator.getInstance().generateStringUUID().getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); try { session.start(xid, XAResource.TMNOFLAGS); } catch (XAException e) { e.printStackTrace(); } try { message.acknowledge(); } catch (ActiveMQException e) { BasicXaTest.log.error("Failed to process message", e); } try { session.end(xid, XAResource.TMSUCCESS); session.rollback(xid); } catch (Exception e) { e.printStackTrace(); failedToAck = true; try { session.close(); } catch (ActiveMQException e1) { // } } latch.countDown(); } }
public InVMConnection(final int serverID, final String id, final BufferHandler handler, final BaseConnectionLifeCycleListener listener, final Executor executor) { this(serverID, id, handler, listener, executor, null); }
@Override public synchronized SequentialFileFactory newFileFactory(final SimpleString address) throws Exception { String guid = UUIDGenerator.getInstance().generateStringUUID(); SequentialFileFactory factory = newFileFactory(guid); factory.createDirs(); File fileWithID = new File(directory, guid + File.separatorChar + PagingStoreFactoryNIO.ADDRESS_FILE); try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileWithID)))) { writer.write(address.toString()); writer.newLine(); } return factory; }
private Message createQueueInfoMessage(final NotificationType type, final SimpleString queueName) { Message message = new CoreMessage().initBuffer(50).setMessageID(storageManager.generateID()); message.setAddress(queueName); String uid = UUIDGenerator.getInstance().generateStringUUID(); message.putStringProperty(ManagementHelper.HDR_NOTIFICATION_TYPE, new SimpleString(type.toString())); message.putLongProperty(ManagementHelper.HDR_NOTIFICATION_TIMESTAMP, System.currentTimeMillis()); message.putStringProperty(new SimpleString("foobar"), new SimpleString(uid)); return message; }