use of org.jboss.resteasy.spi.Link in project activemq-artemis by apache.
the class DupQueueTest method testDup.
@Test
public void testDup() throws Exception {
String testName = "testDup";
QueueDeployment deployment = new QueueDeployment();
deployment.setDuplicatesAllowed(false);
deployment.setDurableSend(false);
deployment.setName(testName);
manager.getQueueManager().deploy(deployment);
ClientRequest request = new ClientRequest(generateURL("/queues/" + testName));
ClientResponse<?> response = request.head();
Assert.assertEquals(200, response.getStatus());
Link sender = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "create");
System.out.println("create: " + sender);
Link consumers = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "pull-consumers");
System.out.println("pull: " + consumers);
response = Util.setAutoAck(consumers, true);
Link consumeNext = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "consume-next");
System.out.println("poller: " + consumeNext);
ClientResponse<?> res = sender.request().body("text/plain", Integer.toString(1)).post();
Assert.assertEquals(307, res.getStatus());
sender = res.getLocationLink();
res.releaseConnection();
System.out.println("create-next: " + sender);
Assert.assertNotNull(sender);
res = sender.request().body("text/plain", Integer.toString(1)).post();
res.releaseConnection();
Assert.assertEquals(201, res.getStatus());
res = sender.request().body("text/plain", Integer.toString(1)).post();
res.releaseConnection();
Assert.assertEquals(201, res.getStatus());
sender = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), res, "create-next");
res = sender.request().body("text/plain", Integer.toString(2)).post();
res.releaseConnection();
Assert.assertEquals(201, res.getStatus());
res = consumeNext.request().post(String.class);
Assert.assertEquals(200, res.getStatus());
Assert.assertEquals("1", res.getEntity(String.class));
res.releaseConnection();
Link session = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), res, "consumer");
System.out.println("session: " + session);
consumeNext = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), res, "consume-next");
System.out.println("consumeNext: " + consumeNext);
res = consumeNext.request().header(Constants.WAIT_HEADER, "10").post(String.class);
Assert.assertEquals(200, res.getStatus());
Assert.assertEquals("2", res.getEntity(String.class));
res.releaseConnection();
session = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), res, "consumer");
System.out.println("session: " + session);
consumeNext = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), res, "consume-next");
System.out.println("consumeNext: " + consumeNext);
res = consumeNext.request().post(String.class);
res.releaseConnection();
Assert.assertEquals(503, res.getStatus());
res = session.request().delete();
res.releaseConnection();
Assert.assertEquals(204, res.getStatus());
}
use of org.jboss.resteasy.spi.Link in project activemq-artemis by apache.
the class EmbeddedTest method testTransform.
@Test
public void testTransform() throws Exception {
ClientRequest request = new ClientRequest(TestPortProvider.generateURL("/queues/exampleQueue"));
ClientResponse<?> response = request.head();
response.releaseConnection();
Assert.assertEquals(200, response.getStatus());
Link sender = response.getLinkHeader().getLinkByTitle("create");
System.out.println("create: " + sender);
Link consumers = response.getLinkHeader().getLinkByTitle("pull-consumers");
System.out.println("pull: " + consumers);
response = Util.setAutoAck(consumers, true);
Link consumeNext = response.getLinkHeader().getLinkByTitle("consume-next");
System.out.println("consume-next: " + consumeNext);
// test that Accept header is used to set content-type
{
TransformTest.Order order = new TransformTest.Order();
order.setName("1");
order.setAmount("$5.00");
publish("exampleQueue", order, null);
ClientResponse<?> res = consumeNext.request().header("Accept-Wait", "2").accept("application/xml").post(String.class);
Assert.assertEquals(200, res.getStatus());
Assert.assertEquals("application/xml", res.getHeaders().getFirst("Content-Type").toString().toLowerCase());
TransformTest.Order order2 = res.getEntity(TransformTest.Order.class);
Assert.assertEquals(order, order2);
consumeNext = res.getLinkHeader().getLinkByTitle("consume-next");
res.releaseConnection();
Assert.assertNotNull(consumeNext);
}
// test that Accept header is used to set content-type
{
TransformTest.Order order = new TransformTest.Order();
order.setName("1");
order.setAmount("$5.00");
publish("exampleQueue", order, null);
ClientResponse<?> res = consumeNext.request().header("Accept-Wait", "2").accept("application/json").post(String.class);
Assert.assertEquals(200, res.getStatus());
Assert.assertEquals("application/json", res.getHeaders().getFirst("Content-Type").toString().toLowerCase());
TransformTest.Order order2 = res.getEntity(TransformTest.Order.class);
Assert.assertEquals(order, order2);
consumeNext = res.getLinkHeader().getLinkByTitle("consume-next");
res.releaseConnection();
Assert.assertNotNull(consumeNext);
}
// test that message property is used to set content type
{
TransformTest.Order order = new TransformTest.Order();
order.setName("2");
order.setAmount("$15.00");
publish("exampleQueue", order, "application/xml");
ClientResponse<?> res = consumeNext.request().header("Accept-Wait", "2").post(String.class);
Assert.assertEquals(200, res.getStatus());
Assert.assertEquals("application/xml", res.getHeaders().getFirst("Content-Type").toString().toLowerCase());
TransformTest.Order order2 = res.getEntity(TransformTest.Order.class);
Assert.assertEquals(order, order2);
consumeNext = res.getLinkHeader().getLinkByTitle("consume-next");
res.releaseConnection();
Assert.assertNotNull(consumeNext);
}
}
use of org.jboss.resteasy.spi.Link in project activemq-artemis by apache.
the class FindDestinationTest method testFindQueue.
@Test
public void testFindQueue() throws Exception {
String testName = "testFindQueue";
server.getActiveMQServer().addAddressInfo(new AddressInfo(SimpleString.toSimpleString(testName), RoutingType.MULTICAST));
server.getActiveMQServer().createQueue(new SimpleString(testName), RoutingType.MULTICAST, new SimpleString(testName), null, false, false);
ClientRequest request = new ClientRequest(TestPortProvider.generateURL("/queues/" + testName));
ClientResponse<?> response = request.head();
response.releaseConnection();
Assert.assertEquals(200, response.getStatus());
Link sender = getLinkByTitle(manager.getTopicManager().getLinkStrategy(), response, "create");
System.out.println("create: " + sender);
Link consumers = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "pull-consumers");
System.out.println("pull: " + consumers);
response = Util.setAutoAck(consumers, true);
Link consumeNext = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), response, "consume-next");
System.out.println("poller: " + consumeNext);
ClientResponse<?> res = sender.request().body("text/plain", Integer.toString(1)).post();
res.releaseConnection();
Assert.assertEquals(201, res.getStatus());
res = consumeNext.request().post(String.class);
Assert.assertEquals(200, res.getStatus());
Assert.assertEquals("1", res.getEntity(String.class));
res.releaseConnection();
Link session = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), res, "consumer");
System.out.println("session: " + session);
Assert.assertEquals(204, session.request().delete().getStatus());
}
use of org.jboss.resteasy.spi.Link in project activemq-artemis by apache.
the class MessageTestBase method getLinkByTitle.
public static Link getLinkByTitle(LinkStrategy strategy, ClientResponse response, String title) {
if (strategy instanceof LinkHeaderLinkStrategy) {
return response.getLinkHeader().getLinkByTitle(title);
} else {
String headerName = "msg-" + title;
String href = (String) response.getHeaders().getFirst(headerName);
if (href == null)
return null;
// System.out.println(headerName + ": " + href);
Link l = new Link(title, null, href, null, null);
try {
l.setExecutor((ClientExecutor) executorField.get(response));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
return l;
}
}
use of org.jboss.resteasy.spi.Link in project activemq-artemis by apache.
the class PushQueueConsumerTest method testTemplate.
@Test
public void testTemplate() throws Exception {
Link destinationForConsumption = null;
ClientResponse consumerResponse = null;
Link pushSubscription = null;
String messageContent = "1";
try {
// The name of the queue used for the test should match the name of the test
String queue = "testTemplate";
String queueToPushTo = "pushedFrom-" + queue;
System.out.println("\n" + queue);
deployQueue(queue);
deployQueue(queueToPushTo);
ClientResponse queueResponse = Util.head(new ClientRequest(generateURL(Util.getUrlPath(queue))));
Link destinationForSend = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), queueResponse, "create");
Link pushSubscriptions = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), queueResponse, "push-consumers");
ClientResponse queueToPushToResponse = Util.head(new ClientRequest(generateURL(Util.getUrlPath(queueToPushTo))));
Link consumers = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), queueToPushToResponse, "pull-consumers");
Link createWithId = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), queueToPushToResponse, "create-with-id");
ClientResponse autoAckResponse = Util.setAutoAck(consumers, true);
destinationForConsumption = getLinkByTitle(manager.getQueueManager().getLinkStrategy(), autoAckResponse, "consume-next");
pushSubscription = createPushRegistration(createWithId.getHref(), pushSubscriptions, PushRegistrationType.TEMPLATE);
sendMessage(destinationForSend, messageContent);
consumerResponse = consume(destinationForConsumption, messageContent);
} finally {
cleanupConsumer(consumerResponse);
cleanupSubscription(pushSubscription);
}
}
Aggregations