Search in sources :

Example 6 with Microservice

use of org.apache.servicecomb.service.center.client.model.Microservice in project java-chassis by ServiceComb.

the class ServiceCenterClientTest method TestRegistryService.

@Test
public void TestRegistryService() throws IOException {
    ServiceCenterRawClient serviceCenterRawClient = Mockito.mock(ServiceCenterRawClient.class);
    HttpResponse httpResponse = new HttpResponse();
    httpResponse.setStatusCode(200);
    httpResponse.setMessage("ok");
    httpResponse.setContent("{\"serviceId\": \"111111\"}");
    Microservice microservice = new Microservice();
    microservice.setServiceName("Test");
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
    Mockito.when(serviceCenterRawClient.postHttpRequest("/registry/microservices", null, objectMapper.writeValueAsString(microservice))).thenReturn(httpResponse);
    ServiceCenterClient serviceCenterClient = new ServiceCenterClient(serviceCenterRawClient);
    RegisteredMicroserviceResponse actualResponse = serviceCenterClient.registerMicroservice(microservice);
    Assert.assertNotNull(actualResponse);
    Assert.assertEquals("111111", actualResponse.getServiceId());
}
Also used : Microservice(org.apache.servicecomb.service.center.client.model.Microservice) RegisteredMicroserviceResponse(org.apache.servicecomb.service.center.client.model.RegisteredMicroserviceResponse) HttpResponse(org.apache.servicecomb.http.client.common.HttpResponse) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Example 7 with Microservice

use of org.apache.servicecomb.service.center.client.model.Microservice in project java-chassis by ServiceComb.

the class ServiceCenterClientTest method TestGetServiceList.

@Test
public void TestGetServiceList() throws IOException {
    ServiceCenterRawClient serviceCenterRawClient = Mockito.mock(ServiceCenterRawClient.class);
    HttpResponse httpResponse = new HttpResponse();
    httpResponse.setStatusCode(200);
    httpResponse.setMessage("ok");
    MicroservicesResponse microservicesResponse = new MicroservicesResponse();
    List<Microservice> microserviceList = new ArrayList<Microservice>();
    microserviceList.add(new Microservice("Test1"));
    microserviceList.add(new Microservice("Test2"));
    microserviceList.add(new Microservice("Test3"));
    microservicesResponse.setServices(microserviceList);
    ObjectMapper mapper = new ObjectMapper();
    httpResponse.setContent(mapper.writeValueAsString(microservicesResponse));
    Mockito.when(serviceCenterRawClient.getHttpRequest(Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(httpResponse);
    ServiceCenterClient serviceCenterClient = new ServiceCenterClient(serviceCenterRawClient);
    MicroservicesResponse actualMicroservicesResponse = serviceCenterClient.getMicroserviceList();
    Assert.assertNotNull(actualMicroservicesResponse);
    Assert.assertEquals(3, actualMicroservicesResponse.getServices().size());
    Assert.assertEquals("Test1", actualMicroservicesResponse.getServices().get(0).getServiceName());
}
Also used : Microservice(org.apache.servicecomb.service.center.client.model.Microservice) MicroservicesResponse(org.apache.servicecomb.service.center.client.model.MicroservicesResponse) ArrayList(java.util.ArrayList) HttpResponse(org.apache.servicecomb.http.client.common.HttpResponse) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Example 8 with Microservice

use of org.apache.servicecomb.service.center.client.model.Microservice in project java-chassis by ServiceComb.

the class ServiceCenterClientTest method TestGetServiceMessage.

@Test
public void TestGetServiceMessage() throws IOException {
    ServiceCenterRawClient serviceCenterRawClient = Mockito.mock(ServiceCenterRawClient.class);
    HttpResponse httpResponse = new HttpResponse();
    httpResponse.setStatusCode(200);
    httpResponse.setMessage("ok");
    String responseString = "{\n" + "  \"service\": {\n" + "      \"serviceId\": \"111111\",\n" + "      \"environment\": \"string\",\n" + "      \"appId\": \"string\",\n" + "      \"serviceName\": \"string\",\n" + "      \"version\": \"string\",\n" + "      \"description\": \"string\",\n" + "      \"level\": \"string\",\n" + "      \"registerBy\": \"string\",\n" + "      \"schemas\": [\n" + "        \"string\"\n" + "      ],\n" + "      \"status\": \"UP\",\n" + "      \"timestamp\": \"string\",\n" + "      \"modTimestamp\": \"string\",\n" + "      \"framework\": {\n" + "        \"name\": \"string\",\n" + "        \"version\": \"string\"\n" + "      },\n" + "      \"paths\": [\n" + "        {\n" + "          \"Path\": \"string\",\n" + "          \"Property\": {\n" + "            \"additionalProp1\": \"string\",\n" + "            \"additionalProp2\": \"string\",\n" + "            \"additionalProp3\": \"string\"\n" + "          }\n" + "        }\n" + "      ],\n" + "      \"properties\": {\n" + "        \"additionalProp1\": \"string\",\n" + "        \"additionalProp2\": \"string\",\n" + "        \"additionalProp3\": \"string\"\n" + "      }\n" + "    }\n" + "}";
    httpResponse.setContent(responseString);
    Mockito.when(serviceCenterRawClient.getHttpRequest("/registry/microservices/111111", null, null)).thenReturn(httpResponse);
    ServiceCenterClient serviceCenterClient = new ServiceCenterClient(serviceCenterRawClient);
    Microservice microservices = serviceCenterClient.getMicroserviceByServiceId("111111");
    Assert.assertNotNull(microservices);
    Assert.assertEquals("111111", microservices.getServiceId());
}
Also used : Microservice(org.apache.servicecomb.service.center.client.model.Microservice) HttpResponse(org.apache.servicecomb.http.client.common.HttpResponse) Test(org.junit.Test)

Example 9 with Microservice

use of org.apache.servicecomb.service.center.client.model.Microservice in project java-chassis by ServiceComb.

the class RegistryClientTest method testRestTransport.

@Override
public void testRestTransport() throws Exception {
    AddressManager addressManager = new AddressManager("default", Arrays.asList("http://127.0.0.1:30100"), new EventBus());
    SSLProperties sslProperties = new SSLProperties();
    sslProperties.setEnabled(false);
    ServiceCenterClient serviceCenterClient = new ServiceCenterClient(addressManager, sslProperties, new DefaultRequestAuthHeaderProvider(), "default", null);
    EventBus eventBus = new SimpleEventBus();
    ServiceCenterConfiguration serviceCenterConfiguration = new ServiceCenterConfiguration();
    ServiceCenterRegistration serviceCenterRegistration = new ServiceCenterRegistration(serviceCenterClient, serviceCenterConfiguration, eventBus);
    Microservice microservice = new Microservice();
    microservice.setAppId("app_registry");
    microservice.setServiceName("name_registry");
    microservice.setVersion("1.0.0");
    microservice.setEnvironment("development");
    List<String> schemas = new ArrayList<>();
    schemas.add("SchemaA");
    schemas.add("SchemaB");
    microservice.setSchemas(schemas);
    MicroserviceInstance microserviceInstance = new MicroserviceInstance();
    microserviceInstance.setHostName("host_registry");
    List<String> endpoints = new ArrayList<>();
    endpoints.add("rest://127.0.0.1/");
    microserviceInstance.setEndpoints(endpoints);
    List<SchemaInfo> schemaInfos = new ArrayList<>();
    SchemaInfo schemaA = new SchemaInfo();
    schemaA.setSchemaId("SchemaA");
    schemaA.setSchema("schema contents in any format");
    schemaA.setSummary(Hashing.sha256().newHasher().putString("schema contents in any format".toString(), Charsets.UTF_8).hash().toString());
    schemaInfos.add(schemaA);
    SchemaInfo schemaB = new SchemaInfo();
    schemaB.setSchemaId("SchemaA");
    schemaB.setSchema("schema contents in any format");
    schemaB.setSummary(Hashing.sha256().newHasher().putString("schema contents in any format".toString(), Charsets.UTF_8).hash().toString());
    schemaInfos.add(schemaB);
    serviceCenterRegistration.setMicroservice(microservice);
    serviceCenterRegistration.setMicroserviceInstance(microserviceInstance);
    serviceCenterRegistration.setSchemaInfos(schemaInfos);
    eventBus.register(this);
    serviceCenterRegistration.startRegistration();
    registrationCounter.await(30000, TimeUnit.MILLISECONDS);
    if (hasRegistered) {
        TestMgr.check(events.size() >= 3, true);
        TestMgr.check(events.get(0).isSuccess(), true);
        TestMgr.check(events.get(0) instanceof MicroserviceRegistrationEvent, true);
        TestMgr.check(events.get(1).isSuccess(), true);
        TestMgr.check(events.get(1) instanceof MicroserviceInstanceRegistrationEvent, true);
        TestMgr.check(events.get(2).isSuccess(), true);
        TestMgr.check(events.get(2) instanceof HeartBeatEvent, true);
    } else {
        TestMgr.check(events.size() >= 4, true);
        TestMgr.check(events.get(0).isSuccess(), true);
        TestMgr.check(events.get(0) instanceof MicroserviceRegistrationEvent, true);
        TestMgr.check(events.get(1).isSuccess(), true);
        TestMgr.check(events.get(1) instanceof SchemaRegistrationEvent, true);
        TestMgr.check(events.get(2).isSuccess(), true);
        TestMgr.check(events.get(2) instanceof MicroserviceInstanceRegistrationEvent, true);
        TestMgr.check(events.get(3).isSuccess(), true);
        TestMgr.check(events.get(3) instanceof HeartBeatEvent, true);
    }
    ServiceCenterDiscovery discovery = new ServiceCenterDiscovery(serviceCenterClient, eventBus);
    discovery.updateMyselfServiceId(microservice.getServiceId());
    discovery.startDiscovery();
    discovery.registerIfNotPresent(new SubscriptionKey(microservice.getAppId(), microservice.getServiceName()));
    discoveryCounter.await(30000, TimeUnit.MILLISECONDS);
    TestMgr.check(instances != null, true);
    TestMgr.check(instances.size(), 1);
    discovery.stop();
    serviceCenterRegistration.stop();
    serviceCenterClient.deleteMicroserviceInstance(microservice.getServiceId(), microserviceInstance.getInstanceId());
}
Also used : SchemaRegistrationEvent(org.apache.servicecomb.service.center.client.RegistrationEvents.SchemaRegistrationEvent) AddressManager(org.apache.servicecomb.service.center.client.AddressManager) SubscriptionKey(org.apache.servicecomb.service.center.client.ServiceCenterDiscovery.SubscriptionKey) ServiceCenterConfiguration(org.apache.servicecomb.service.center.client.model.ServiceCenterConfiguration) ServiceCenterRegistration(org.apache.servicecomb.service.center.client.ServiceCenterRegistration) ServiceCenterDiscovery(org.apache.servicecomb.service.center.client.ServiceCenterDiscovery) SSLProperties(org.apache.servicecomb.http.client.common.HttpConfiguration.SSLProperties) ArrayList(java.util.ArrayList) MicroserviceInstance(org.apache.servicecomb.service.center.client.model.MicroserviceInstance) EventBus(com.google.common.eventbus.EventBus) SimpleEventBus(org.apache.servicecomb.foundation.common.event.SimpleEventBus) DefaultRequestAuthHeaderProvider(org.apache.servicecomb.http.client.auth.DefaultRequestAuthHeaderProvider) MicroserviceRegistrationEvent(org.apache.servicecomb.service.center.client.RegistrationEvents.MicroserviceRegistrationEvent) HeartBeatEvent(org.apache.servicecomb.service.center.client.RegistrationEvents.HeartBeatEvent) Microservice(org.apache.servicecomb.service.center.client.model.Microservice) ServiceCenterClient(org.apache.servicecomb.service.center.client.ServiceCenterClient) SimpleEventBus(org.apache.servicecomb.foundation.common.event.SimpleEventBus) MicroserviceInstanceRegistrationEvent(org.apache.servicecomb.service.center.client.RegistrationEvents.MicroserviceInstanceRegistrationEvent) SchemaInfo(org.apache.servicecomb.service.center.client.model.SchemaInfo)

Example 10 with Microservice

use of org.apache.servicecomb.service.center.client.model.Microservice in project incubator-servicecomb-java-chassis by apache.

the class ServiceCenterDiscovery method setMicroserviceInfo.

private void setMicroserviceInfo(List<MicroserviceInstance> instances) {
    instances.forEach(instance -> {
        Microservice microservice = microserviceCache.computeIfAbsent(instance.getServiceId(), id -> {
            try {
                return serviceCenterClient.getMicroserviceByServiceId(id);
            } catch (Exception e) {
                LOGGER.error("Find microservice by id={} failed", id, e);
                throw e;
            }
        });
        instance.setMicroservice(microservice);
    });
}
Also used : Microservice(org.apache.servicecomb.service.center.client.model.Microservice)

Aggregations

Microservice (org.apache.servicecomb.service.center.client.model.Microservice)12 HttpResponse (org.apache.servicecomb.http.client.common.HttpResponse)8 Test (org.junit.Test)8 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)4 ArrayList (java.util.ArrayList)4 RegisteredMicroserviceResponse (org.apache.servicecomb.service.center.client.model.RegisteredMicroserviceResponse)4 EventBus (com.google.common.eventbus.EventBus)2 SimpleEventBus (org.apache.servicecomb.foundation.common.event.SimpleEventBus)2 DefaultRequestAuthHeaderProvider (org.apache.servicecomb.http.client.auth.DefaultRequestAuthHeaderProvider)2 SSLProperties (org.apache.servicecomb.http.client.common.HttpConfiguration.SSLProperties)2 AddressManager (org.apache.servicecomb.service.center.client.AddressManager)2 HeartBeatEvent (org.apache.servicecomb.service.center.client.RegistrationEvents.HeartBeatEvent)2 MicroserviceInstanceRegistrationEvent (org.apache.servicecomb.service.center.client.RegistrationEvents.MicroserviceInstanceRegistrationEvent)2 MicroserviceRegistrationEvent (org.apache.servicecomb.service.center.client.RegistrationEvents.MicroserviceRegistrationEvent)2 SchemaRegistrationEvent (org.apache.servicecomb.service.center.client.RegistrationEvents.SchemaRegistrationEvent)2 ServiceCenterClient (org.apache.servicecomb.service.center.client.ServiceCenterClient)2 ServiceCenterDiscovery (org.apache.servicecomb.service.center.client.ServiceCenterDiscovery)2 SubscriptionKey (org.apache.servicecomb.service.center.client.ServiceCenterDiscovery.SubscriptionKey)2 ServiceCenterRegistration (org.apache.servicecomb.service.center.client.ServiceCenterRegistration)2 MicroserviceInstance (org.apache.servicecomb.service.center.client.model.MicroserviceInstance)2