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


Java ClientSession.addressQuery方法代码示例

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


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

示例1: findTopic

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Path("/{topic-name}")
public TopicResource findTopic(@PathParam("topic-name") String name) throws Exception {
   TopicResource topic = topics.get(name);
   if (topic == null) {
      ClientSession session = manager.getSessionFactory().createSession(false, false, false);
      try {
         ClientSession.AddressQuery query = session.addressQuery(new SimpleString(name));
         if (!query.isExists()) {
            System.err.println("Topic '" + name + "' does not exist");
            throw new WebApplicationException(Response.status(404).type("text/plain").entity("Topic '" + name + "' does not exist").build());
         }
         DestinationSettings queueSettings = manager.getDefaultSettings();
         boolean defaultDurable = queueSettings.isDurableSend();

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

示例2: testBindingQuery

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testBindingQuery() throws Exception {
   cf = createSessionFactory(locator);
   ClientSession clientSession = cf.createSession(false, true, true);
   clientSession.createQueue("a1", "q1", false);
   clientSession.createQueue("a1", "q2", false);
   clientSession.createQueue("a2", "q3", false);
   clientSession.createQueue("a2", "q4", false);
   clientSession.createQueue("a2", "q5", false);
   ClientSession.AddressQuery resp = clientSession.addressQuery(new SimpleString("a"));
   List<SimpleString> queues = resp.getQueueNames();
   Assert.assertTrue(queues.isEmpty());
   resp = clientSession.addressQuery(new SimpleString("a1"));
   queues = resp.getQueueNames();
   Assert.assertEquals(queues.size(), 2);
   Assert.assertTrue(queues.contains(new SimpleString("q1")));
   Assert.assertTrue(queues.contains(new SimpleString("q2")));
   resp = clientSession.addressQuery(new SimpleString("a2"));
   queues = resp.getQueueNames();
   Assert.assertEquals(queues.size(), 3);
   Assert.assertTrue(queues.contains(new SimpleString("q3")));
   Assert.assertTrue(queues.contains(new SimpleString("q4")));
   Assert.assertTrue(queues.contains(new SimpleString("q5")));
   clientSession.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:26,代码来源:SessionTest.java

示例3: createJmsTopic

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

   try {
      TopicConfiguration topic = FileJMSConfiguration.parseTopicConfiguration(document.getDocumentElement());
      ActiveMQTopic activeMQTopic = ActiveMQDestination.createTopic(topic.getName());
      String topicName = activeMQTopic.getAddress();
      ClientSession session = manager.getSessionFactory().createSession(false, false, false);
      try {

         ClientSession.AddressQuery query = session.addressQuery(new SimpleString(topicName));
         if (!query.isExists()) {
            session.createAddress(SimpleString.toSimpleString(topicName), RoutingType.MULTICAST, true);

         } 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(topicName).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,代码行数:34,代码来源:TopicDestinationsResource.java


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