public static ServiceQueue regularService(final String name, Object service) { ServiceQueueImpl serviceQueue = (ServiceQueueImpl) ServiceBuilder.serviceBuilder().setServiceAddress(name).setServiceObject(service).build(); serviceQueue.start(); return serviceQueue; } }
@Test public void testUsingProxyWithAutoFlush() { /* Create a service that lives behind a ServiceQueue. */ ServiceQueue serviceQueue = serviceBuilder() .setServiceAddress("/todo-service") .setServiceObject(new TodoService()) .build(); TodoServiceClient todoServiceClient = serviceQueue.createProxyWithAutoFlush(TodoServiceClient.class, 25, TimeUnit.MILLISECONDS); serviceQueue.start(); serviceQueue.startServiceQueue().startCallBackHandler(); todoServiceClient.add(new TodoItem("foo", "foo", null)); AtomicReference<List<TodoItem>> items = new AtomicReference<>(); todoServiceClient.list(todoItems -> items.set(todoItems)); Sys.sleep(2000); ok = items.get() != null || die(); ok = items.get().size() > 0 || die(); ok = items.get().get(0).getDescription().equals("foo") || die(); }
.setRootAddress(rootAddress) .setServiceObject(serviceObject) .setServiceAddress(serviceAddress) .setTimer(timer) .setResponseQueue(responseQueue)
public static ServiceQueue jsonService(final String name, Object service ) { JsonMapper mapper = new BoonJsonMapper(); ServiceQueueImpl serviceQueue = (ServiceQueueImpl) ServiceBuilder.serviceBuilder().setServiceAddress(name).setServiceObject(service).build(); serviceQueue.requestObjectTransformer(new JsonRequestBodyToArgListTransformer(mapper)); serviceQueue.responseObjectTransformer(new JsonResponseTransformer(mapper)); serviceQueue.start(); return serviceQueue; }
.setServiceAddress("/todo-service") .setServiceObject(new TodoService()).build().startServiceQueue();
@Test public void testCallbackWithObjectNameAndMethodName() { ServiceQueue serviceQueue = ServiceBuilder.serviceBuilder().setRootAddress("/services") .setServiceAddress("/todo-service") .setServiceObject(new TodoService()).build().startServiceQueue(); //QBit.factory().createService("/services", "/todo-service", //new TodoService(), null, null).startServiceQueue(); SendQueue<MethodCall<Object>> requests = serviceQueue.requests(); TodoItem todoItem = new TodoItem("call mom", "give mom a call", new Date()); MethodCall<Object> addMethodCall = QBit.factory().createMethodCallByNames("add", "/todo-service", "call1:localhost", todoItem, null); requests.send(addMethodCall); MethodCall<Object> listMethodCall = QBit.factory().createMethodCallByNames("list", "/todo-service", "call2:localhost", todoItem, null); requests.sendAndFlush(listMethodCall); Sys.sleep(100); ReceiveQueue<Response<Object>> responses = serviceQueue.responses(); Response<Object> response = responses.take(); Object body = response.body(); if (body instanceof List) { @SuppressWarnings("unchecked") List<TodoItem> items = (List) body; ok = items.size() > 0 || die("items should have one todo in it"); TodoItem todoItem1 = items.get(0); ok = todoItem.equals(todoItem1) || die("TodoItem ", todoItem, todoItem1); } else { die("Response was not a list", body); } }
.setRootAddress(rootAddress) .setServiceObject(serviceObject) .setServiceAddress(serviceAddress) .setTimer(timer) .setResponseQueue(responseQueue)
.setRootAddress(rootAddress) .setServiceObject(serviceObject) .setServiceAddress(serviceAddress) .setTimer(timer) .setResponseQueue(responseQueue)