当前位置: 首页>>代码示例>>Java>>正文


Java ClientSession.QueueQuery方法代码示例

本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientSession.QueueQuery方法的典型用法代码示例。如果您正苦于以下问题:Java ClientSession.QueueQuery方法的具体用法?Java ClientSession.QueueQuery怎么用?Java ClientSession.QueueQuery使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.activemq.artemis.api.core.client.ClientSession的用法示例。


在下文中一共展示了ClientSession.QueueQuery方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: findQueue

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Path("/{queue-name}")
public synchronized QueueResource findQueue(@PathParam("queue-name") String name) throws Exception {
   QueueResource queue = queues.get(name);
   if (queue == null) {
      String queueName = name;
      ClientSession session = manager.getSessionFactory().createSession(false, false, false);
      try {
         ClientSession.QueueQuery query = session.queueQuery(new SimpleString(queueName));
         if (!query.isExists()) {
            throw new WebApplicationException(Response.status(404).type("text/plain").entity("Queue '" + name + "' does not exist").build());
         }
         DestinationSettings queueSettings = manager.getDefaultSettings();
         boolean defaultDurable = queueSettings.isDurableSend() || query.isDurable();

         queue = createQueueResource(queueName, defaultDurable, queueSettings.getConsumerSessionTimeoutSeconds(), queueSettings.isDuplicatesAllowed());
      } finally {
         try {
            session.close();
         } catch (ActiveMQException e) {
         }
      }
   }
   return queue;
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:25,代码来源:QueueDestinationsResource.java

示例2: deploy

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
public void deploy(QueueDeployment queueDeployment) throws Exception {
   if (!started) {
      throw new Exception("You must start() this class instance before deploying");
   }
   String queueName = queueDeployment.getName();
   try (ClientSession session = sessionFactory.createSession(false, false, false)) {
      ClientSession.AddressQuery query = session.addressQuery(SimpleString.toSimpleString(queueName));
      if (!query.isExists()) {
         session.createAddress(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, true);
         session.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), queueDeployment.isDurableSend());
      } else {
         ClientSession.QueueQuery qquery = session.queueQuery(SimpleString.toSimpleString(queueName));
         if (!qquery.isExists()) {
            session.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), queueDeployment.isDurableSend());
         }
      }
   }

   destination.createQueueResource(queueName, queueDeployment.isDurableSend(), queueDeployment.getConsumerSessionTimeoutSeconds(), queueDeployment.isDuplicatesAllowed());

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:22,代码来源:QueueServiceManager.java

示例3: testDuplicate

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
public void testDuplicate() throws Exception {
   ActiveMQDestination queue = (ActiveMQDestination) session.createQueue("TEST,TEST");
   for (int i = 0; i < data.length; i++) {
      Message message = createMessage(i);
      configureMessage(message);
      if (verbose) {
         LOG.info("About to send a message: " + message + " with text: " + data[i]);
      }
      producer.send(queue, message);
   }

   Thread.sleep(200); // wait for messages to be queue;

   try (ServerLocator locator = ServerLocatorImpl.newLocator("tcp://localhost:61616");
        ClientSessionFactory factory = locator.createSessionFactory();
        ClientSession session = factory.createSession()) {
      ClientSession.QueueQuery query = session.queueQuery(new SimpleString("TEST"));
      assertNotNull(query);
      assertEquals(data.length, query.getMessageCount());
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:22,代码来源:JmsQueueCompositeSendReceiveTest.java

示例4: createJmsQueue

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@POST
@Consumes("application/activemq.jms.queue+xml")
public Response createJmsQueue(@Context UriInfo uriInfo, Document document) {
   ActiveMQRestLogger.LOGGER.debug("Handling POST request for \"" + uriInfo.getPath() + "\"");

   try {
      JMSQueueConfiguration queue = FileJMSConfiguration.parseQueueConfiguration(document.getDocumentElement());
      ActiveMQQueue activeMQQueue = ActiveMQDestination.createQueue(queue.getName());
      String queueName = activeMQQueue.getAddress();
      ClientSession session = manager.getSessionFactory().createSession(false, false, false);
      try {

         ClientSession.QueueQuery query = session.queueQuery(new SimpleString(queueName));
         if (!query.isExists()) {
            if (queue.getSelector() != null) {
               session.createQueue(queueName, queueName, queue.getSelector(), queue.isDurable());
            } else {
               session.createQueue(queueName, queueName, queue.isDurable());
            }

         } else {
            throw new WebApplicationException(Response.status(412).type("text/plain").entity("Queue already exists.").build());
         }
      } finally {
         try {
            session.close();
         } catch (Exception ignored) {
         }
      }
      URI uri = uriInfo.getRequestUriBuilder().path(queueName).build();
      return Response.created(uri).build();
   } catch (Exception e) {
      if (e instanceof WebApplicationException)
         throw (WebApplicationException) e;
      throw new WebApplicationException(e, Response.serverError().type("text/plain").entity("Failed to create queue.").build());
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:38,代码来源:QueueDestinationsResource.java

示例5: bindQueue

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
private void bindQueue() throws Exception {
   String queueName = "";
   String address = "";
   String filter = "";
   String routingType = "";

   for (int i = 0; i < reader.getAttributeCount(); i++) {
      String attributeName = reader.getAttributeLocalName(i);
      switch (attributeName) {
         case XmlDataConstants.QUEUE_BINDING_ADDRESS:
            address = reader.getAttributeValue(i);
            break;
         case XmlDataConstants.QUEUE_BINDING_NAME:
            queueName = reader.getAttributeValue(i);
            break;
         case XmlDataConstants.QUEUE_BINDING_FILTER_STRING:
            filter = reader.getAttributeValue(i);
            break;
         case XmlDataConstants.QUEUE_BINDING_ROUTING_TYPE:
            routingType = reader.getAttributeValue(i);
            break;
      }
   }

   ClientSession.QueueQuery queueQuery = session.queueQuery(new SimpleString(queueName));

   if (!queueQuery.isExists()) {
      session.createQueue(address, RoutingType.valueOf(routingType), queueName, filter, true);
      if (logger.isDebugEnabled()) {
         logger.debug("Binding queue(name=" + queueName + ", address=" + address + ", filter=" + filter + ")");
      }
   } else {
      if (logger.isDebugEnabled()) {
         logger.debug("Binding " + queueName + " already exists so won't re-bind.");
      }
   }

   addressMap.put(queueName, address);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:40,代码来源:XmlDataImporter.java

示例6: testBindingAttributes

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testBindingAttributes() throws Exception {
   ClientSession session = basicSetUp();

   session.createQueue("addressName1", RoutingType.MULTICAST, "queueName1", true);
   session.createQueue("addressName1", RoutingType.MULTICAST, "queueName2", "bob", true);

   session.close();
   locator.close();
   server.stop();

   ByteArrayOutputStream xmlOutputStream = new ByteArrayOutputStream();
   XmlDataExporter xmlDataExporter = new XmlDataExporter();
   xmlDataExporter.process(xmlOutputStream, server.getConfiguration().getBindingsDirectory(), server.getConfiguration().getJournalDirectory(), server.getConfiguration().getPagingDirectory(), server.getConfiguration().getLargeMessagesDirectory());
   System.out.print(new String(xmlOutputStream.toByteArray()));

   clearDataRecreateServerDirs();
   server.start();
   checkForLongs();
   locator = createInVMNonHALocator();
   factory = createSessionFactory(locator);
   session = factory.createSession(false, true, true);

   ByteArrayInputStream xmlInputStream = new ByteArrayInputStream(xmlOutputStream.toByteArray());
   XmlDataImporter xmlDataImporter = new XmlDataImporter();
   xmlDataImporter.validate(xmlInputStream);
   xmlInputStream.reset();
   xmlDataImporter.process(xmlInputStream, session);

   ClientSession.QueueQuery queueQuery = session.queueQuery(new SimpleString("queueName1"));

   assertEquals("addressName1", queueQuery.getAddress().toString());
   assertNull(queueQuery.getFilterString());

   queueQuery = session.queueQuery(new SimpleString("queueName2"));

   assertEquals("addressName1", queueQuery.getAddress().toString());
   assertEquals("bob", queueQuery.getFilterString().toString());
   assertEquals(true, queueQuery.isDurable());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:41,代码来源:XmlImportExportTest.java

示例7: checkQueueFromInternalAddress

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
private boolean checkQueueFromInternalAddress(String queue) throws JMSException, ActiveMQException {
   try (Connection coreConn = coreCf.createConnection()) {
      ActiveMQSession session = (ActiveMQSession) coreConn.createSession();
      ClientSession coreSession = session.getCoreSession();
      ClientSession.QueueQuery query = coreSession.queueQuery(new SimpleString(queue));
      assertTrue("Queue doesn't exist: " + queue, query.isExists());
      SimpleString qAddr = query.getAddress();
      return qAddr.toString().startsWith(AdvisorySupport.ADVISORY_TOPIC_PREFIX);
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:11,代码来源:OpenWireManagementTest.java

示例8: queueQuery

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Override
public ClientSession.QueueQuery queueQuery(final SimpleString queueName) throws ActiveMQException {
   SessionQueueQueryMessage request = new SessionQueueQueryMessage(queueName);
   SessionQueueQueryResponseMessage response = (SessionQueueQueryResponseMessage) getSessionChannel().sendBlocking(request, PacketImpl.SESS_QUEUEQUERY_RESP);

   return response.toQueueQuery();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:8,代码来源:HornetQClientSessionContext.java

示例9: testFailure

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testFailure() throws Exception {
   try {
      String testName = "testFailure";
      startup();
      deployTopic(testName);

      ClientRequest request = new ClientRequest(generateURL("/topics/" + testName));

      ClientResponse<?> response = request.head();
      response.releaseConnection();
      Assert.assertEquals(200, response.getStatus());
      Link sender = MessageTestBase.getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "create");
      System.out.println("create: " + sender);
      Link pushSubscriptions = MessageTestBase.getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "push-subscriptions");
      System.out.println("push subscriptions: " + pushSubscriptions);

      PushTopicRegistration reg = new PushTopicRegistration();
      reg.setDurable(true);
      XmlLink target = new XmlLink();
      target.setHref("http://localhost:3333/error");
      target.setRelationship("uri");
      reg.setTarget(target);
      reg.setDisableOnFailure(true);
      reg.setMaxRetries(3);
      reg.setRetryWaitMillis(10);
      response = pushSubscriptions.request().body("application/xml", reg).post();
      Assert.assertEquals(201, response.getStatus());
      Link pushSubscription = response.getLocationLink();
      response.releaseConnection();

      ClientResponse<?> res = sender.request().body("text/plain", Integer.toString(1)).post();
      res.releaseConnection();
      Assert.assertEquals(201, res.getStatus());

      Thread.sleep(5000);

      response = pushSubscription.request().get();
      PushTopicRegistration reg2 = response.getEntity(PushTopicRegistration.class);
      response.releaseConnection();
      Assert.assertEquals(reg.isDurable(), reg2.isDurable());
      Assert.assertEquals(reg.getTarget().getHref(), reg2.getTarget().getHref());
      Assert.assertFalse(reg2.isEnabled());
      response.releaseConnection();

      String destination = reg2.getDestination();
      ClientSession session = manager.getQueueManager().getSessionFactory().createSession(false, false, false);
      ClientSession.QueueQuery query = session.queueQuery(new SimpleString(destination));
      Assert.assertFalse(query.isExists());

      manager.getQueueManager().getPushStore().removeAll();
   } finally {
      shutdown();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:56,代码来源:PersistentPushTopicConsumerTest.java

示例10: getQueueInfo

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Override
public ClientSession.QueueQuery getQueueInfo() {
   return null;
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:5,代码来源:LargeMessageBufferTest.java

示例11: toQueueQuery

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
public ClientSession.QueueQuery toQueueQuery() {
   return new QueueQueryImpl(isDurable(), isTemporary(), getConsumerCount(), getMessageCount(), getFilterString(), getAddress(), getName(), isExists());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:4,代码来源:SessionQueueQueryResponseMessage.java

示例12: toQueueQuery

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Override
public ClientSession.QueueQuery toQueueQuery() {
   return new QueueQueryImpl(isDurable(), isTemporary(), getConsumerCount(), getMessageCount(), getFilterString(), getAddress(), getName(), isExists(), isAutoCreateQueues());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:5,代码来源:SessionQueueQueryResponseMessage_V2.java

示例13: toQueueQuery

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Override
public ClientSession.QueueQuery toQueueQuery() {
   return new QueueQueryImpl(isDurable(), isTemporary(), getConsumerCount(), getMessageCount(), getFilterString(), getAddress(), getName(), isExists(), isAutoCreateQueues(), getMaxConsumers(), isAutoCreated(), isPurgeOnNoConsumers(), getRoutingType());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:5,代码来源:SessionQueueQueryResponseMessage_V3.java

示例14: ClientConsumerImpl

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
public ClientConsumerImpl(final ClientSessionInternal session,
                          final ConsumerContext consumerContext,
                          final SimpleString queueName,
                          final SimpleString filterString,
                          final boolean browseOnly,
                          final int clientWindowSize,
                          final int ackBatchSize,
                          final TokenBucketLimiter rateLimiter,
                          final Executor executor,
                          final Executor flowControlExecutor,
                          final SessionContext sessionContext,
                          final ClientSession.QueueQuery queueInfo,
                          final ClassLoader contextClassLoader) {
   this.consumerContext = consumerContext;

   this.queueName = queueName;

   this.filterString = filterString;

   this.browseOnly = browseOnly;

   this.sessionContext = sessionContext;

   this.session = session;

   this.rateLimiter = rateLimiter;

   sessionExecutor = executor;

   this.clientWindowSize = clientWindowSize;

   this.ackBatchSize = ackBatchSize;

   this.queueInfo = queueInfo;

   this.contextClassLoader = contextClassLoader;

   this.flowControlExecutor = flowControlExecutor;

   if (logger.isTraceEnabled()) {
      logger.trace(this + ":: being created at", new Exception("trace"));
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:44,代码来源:ClientConsumerImpl.java

示例15: getQueueInfo

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Override
public ClientSession.QueueQuery getQueueInfo() {
   return queueInfo;
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:5,代码来源:ClientConsumerImpl.java


注:本文中的org.apache.activemq.artemis.api.core.client.ClientSession.QueueQuery方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。