use of org.apache.servicecomb.serviceregistry.api.response.GetSchemasResponse in project java-chassis by ServiceComb.
the class ServiceRegistryClientImpl method getSchemas.
private Holder<List<GetSchemaResponse>> getSchemas(String microserviceId, boolean withSchema, boolean global) {
Holder<GetSchemasResponse> holder = new Holder<>();
IpPort ipPort = ipPortManager.getAvailableAddress();
Holder<List<GetSchemaResponse>> resultHolder = new Holder<>();
CountDownLatch countDownLatch = new CountDownLatch(1);
String url = Const.REGISTRY_API.MICROSERVICE_ALL_SCHEMAs;
RequestParam requestParam = new RequestParam();
if (withSchema) {
url = Const.REGISTRY_API.MICROSERVICE_ALL_SCHEMAs + "?withSchema=1";
}
if (global) {
requestParam.addQueryParam("global", "true");
}
restClientUtil.get(ipPort, String.format(url, microserviceId), requestParam, syncHandler(countDownLatch, GetSchemasResponse.class, holder));
try {
countDownLatch.await();
} catch (Exception e) {
LOGGER.error("query all schemas {} failed", microserviceId, e);
}
resultHolder.setStatusCode(holder.getStatusCode()).setThrowable(holder.getThrowable());
if (holder.value != null) {
return resultHolder.setValue(holder.value.getSchema() != null ? holder.value.getSchema() : holder.value.getSchemas());
}
return resultHolder;
}
use of org.apache.servicecomb.serviceregistry.api.response.GetSchemasResponse in project java-chassis by ServiceComb.
the class TestServiceRegistryClientImpl method getSchemas.
@Test
public void getSchemas() {
String microserviceId = "msId";
new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetSchemasResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
GetSchemasResponse schemasResp = Json.decodeValue("{\"schema\":[{\"schemaId\":\"metricsEndpoint\",\"summary\":\"c1188d709631a9038874f9efc6eb894f\"},{\"schemaId\":\"comment\",\"summary\":\"bfa81d625cfbd3a57f38745323e16824\"}," + "{\"schemaId\":\"healthEndpoint\",\"summary\":\"96a0aaaaa454cfa0c716e70c0017fe27\"}]}", GetSchemasResponse.class);
holder.statusCode = 200;
holder.value = schemasResp;
}
};
Holder<List<GetSchemaResponse>> schemasHolder = oClient.getSchemas(microserviceId);
List<GetSchemaResponse> schemaResponses = schemasHolder.getValue();
Assert.assertEquals(200, schemasHolder.getStatusCode());
Assert.assertEquals(3, schemaResponses.size());
Assert.assertEquals("bfa81d625cfbd3a57f38745323e16824", schemaResponses.get(1).getSummary());
}
use of org.apache.servicecomb.serviceregistry.api.response.GetSchemasResponse in project java-chassis by ServiceComb.
the class TestServiceRegistryClientImpl method getSchemasForNew.
@Test
public void getSchemasForNew() {
String microserviceId = "msId";
new MockUp<RestClientUtil>() {
@Mock
void httpDo(RequestContext requestContext, Handler<RestResponse> responseHandler) {
Holder<GetSchemasResponse> holder = Deencapsulation.getField(responseHandler, "arg$4");
GetSchemasResponse schemasResp = Json.decodeValue("{\"schemas\":[{\"schemaId\":\"metricsEndpoint\",\"summary\":\"c1188d709631a9038874f9efc6eb894f\"},{\"schemaId\":\"comment\",\"summary\":\"bfa81d625cfbd3a57f38745323e16824\"}," + "{\"schemaId\":\"healthEndpoint\",\"summary\":\"96a0aaaaa454cfa0c716e70c0017fe27\"}]}", GetSchemasResponse.class);
holder.statusCode = 200;
holder.value = schemasResp;
}
};
Holder<List<GetSchemaResponse>> schemasHolder = oClient.getSchemas(microserviceId);
List<GetSchemaResponse> schemas = schemasHolder.getValue();
Assert.assertEquals(200, schemasHolder.getStatusCode());
Assert.assertEquals(3, schemas.size());
Assert.assertEquals("bfa81d625cfbd3a57f38745323e16824", schemas.get(1).getSummary());
}
Aggregations