This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new c84a366  [SCB-1571]set tenantName parameter and add exceptions handle
c84a366 is described below

commit c84a36696649b72be993bde1ccc7ad25992f6629
Author: zhouzhongyuan <[email protected]>
AuthorDate: Fri Nov 8 16:47:42 2019 +0800

    [SCB-1571]set tenantName parameter and add exceptions handle
---
 .../service/center/client/ServiceCenterClient.java | 168 +++++++++++++--------
 .../center/client/ServiceCenterRawClient.java      |  96 ++++++------
 .../OperationException.java}                       |  89 ++++++-----
 .../service/center/client/http/HttpRequest.java    |  75 ++++++++-
 .../service/center/client/http/HttpTransport.java  |   4 +-
 .../center/client/http/HttpTransportImpl.java      |  46 ++----
 .../center/client/HttpTransportImplTest.java       |   2 +-
 .../center/client/ServiceCenterRawClientTest.java  |  12 +-
 8 files changed, 287 insertions(+), 205 deletions(-)

diff --git 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
index df4a372..5b0b30d 100755
--- 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
+++ 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterClient.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.apache.http.HttpStatus;
 import org.apache.http.client.utils.URIBuilder;
+import 
org.apache.servicecomb.service.center.client.exception.OperationException;
 import org.apache.servicecomb.service.center.client.http.HttpResponse;
 import org.apache.servicecomb.service.center.client.http.HttpTransport;
 import org.apache.servicecomb.service.center.client.http.HttpTransportFactory;
@@ -71,7 +72,7 @@ public class ServiceCenterClient {
    * @param extraGlobalHeaders
    */
   public ServiceCenterClient(Map<String, String> extraGlobalHeaders) {
-    this(null, 0, null, null, extraGlobalHeaders);
+    this(null, 0, null, null, null, extraGlobalHeaders);
   }
 
   /**
@@ -80,7 +81,7 @@ public class ServiceCenterClient {
    * @param extraGlobalHeaders
    */
   public ServiceCenterClient(TLSConfig tlsConfig, Map<String, String> 
extraGlobalHeaders) {
-    this(null, 0, null, tlsConfig, extraGlobalHeaders);
+    this(null, 0, null, null, tlsConfig, extraGlobalHeaders);
   }
 
   /**
@@ -89,25 +90,31 @@ public class ServiceCenterClient {
    * @param port
    */
   public ServiceCenterClient(String host, int port) {
-    this(host, port, null, null, null);
+    this(host, port, null, null, null, null);
   }
 
   /**
-   * Customized host,port,domainName,TLSConf, headers and any one parameter 
can be null.
+   * Customized host, port, projectName, tenantName, TLSConf, headers and any 
one parameter can be null.
    * @param host
    * @param port
-   * @param domainName
+   * @param projectName
+   * @param tenantName
    * @param tlsConfig
    * @param extraGlobalHeaders
    */
-  public ServiceCenterClient(String host, int port, String domainName, 
TLSConfig tlsConfig,
+  public ServiceCenterClient(String host, int port, String projectName, String 
tenantName, TLSConfig tlsConfig,
       Map<String, String> extraGlobalHeaders) {
     HttpTransport httpTransport = 
HttpTransportFactory.getDefaultHttpTransport();
     if (tlsConfig != null) {
       httpTransport = new TLSHttpsTransport(tlsConfig);
     }
     httpTransport.addHeaders(extraGlobalHeaders);
-    this.httpClient = new 
ServiceCenterRawClient.Builder().setHost(host).setPort(port).setDomainName(domainName)
+
+    this.httpClient = new ServiceCenterRawClient.Builder()
+        .setHost(host)
+        .setPort(port)
+        .setProjectName(projectName)
+        .setTenantName(tenantName)
         .setHttpTransport(httpTransport).build();
   }
 
@@ -118,7 +125,8 @@ public class ServiceCenterClient {
   /**
    * Get service-center instances message
    *
-   * @return MicroserviceInstancesResponse; when error happens,return null
+   * @return MicroserviceInstancesResponse
+   * @throws OperationException
    */
   public MicroserviceInstancesResponse getServiceCenterInstances() {
     try {
@@ -127,20 +135,23 @@ public class ServiceCenterClient {
         ObjectMapper mapper = new ObjectMapper();
         return mapper.readValue(response.getContent(), 
MicroserviceInstancesResponse.class);
       } else {
-        LOGGER.error("get service-center instances fails, 
responseStatusCode={}, responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "get service-center instances fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("get service-center instances fails", e);
+      throw new OperationException(
+          "get service-center instances fails", e);
     }
-    return null;
   }
 
   /**
    * Register microservice to service-center
    *
    * @param microservice
-   * @return serviceId ; when error happens,return null
+   * @return serviceId
+   * @throws OperationException
    */
   public String registerMicroservice(Microservice microservice) {
     try {
@@ -151,19 +162,22 @@ public class ServiceCenterClient {
       if (response.getStatusCode() == HttpStatus.SC_OK) {
         return response.getContent();
       } else {
-        LOGGER.error("register service fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "register service fails, statusCode = " + response.getStatusCode() 
+ "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("register service fails", e);
+      throw new OperationException(
+          "register service fails", e);
     }
-    return null;
   }
 
   /**
    * find all registerd microservice of service-center
    *
-   * @return MicroserviceResponse ; when error happens,return null
+   * @return MicroserviceResponse
+   * @throws OperationException
    */
   public MicroservicesResponse getMicroserviceList() {
     try {
@@ -173,19 +187,23 @@ public class ServiceCenterClient {
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, 
false);
         return mapper.readValue(response.getContent(), 
MicroservicesResponse.class);
       } else {
-        LOGGER.error("get service List fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "get service List fails, statusCode = " + response.getStatusCode() 
+ "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("get service List fails", e);
+      throw new OperationException(
+          "get service List fails", e);
     }
-    return null;
   }
 
   /**
-   * query serviceId
+   * query serviceId, temporary only supports Microservice type
+   *
    * @param microservice
-   * @return serviceId ; when error happens,return null
+   * @return serviceId
+   * @throws OperationException
    */
   public String queryServiceId(Microservice microservice) {
     try {
@@ -199,20 +217,26 @@ public class ServiceCenterClient {
       if (response.getStatusCode() == HttpStatus.SC_OK) {
         return response.getContent();
       } else {
-        LOGGER.error("query serviceId fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "query serviceId fails, statusCode = " + response.getStatusCode() 
+ "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
-    } catch (IOException | URISyntaxException e) {
-      LOGGER.error("query serviceId fails", e);
+    } catch (IOException e) {
+      throw new OperationException(
+          "query serviceId fails", e);
+    } catch (URISyntaxException e) {
+      throw new OperationException(
+          "build url failed.", e);
     }
-    return null;
   }
 
   /**
    * Get one microservice message of service-center
    *
    * @param serviceId
-   * @return Microservice ; when error happens,return null
+   * @return Microservice
+   * @throws OperationException
    */
   @SuppressWarnings("unchecked")
   public Microservice getMicroserviceByServiceId(String serviceId) {
@@ -224,13 +248,15 @@ public class ServiceCenterClient {
         JsonNode jsonNode = mapper.readTree(response.getContent());
         return mapper.readValue(jsonNode.get("service").toString(), 
Microservice.class);
       } else {
-        LOGGER.error("get service message fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "get service message fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("get service message fails", e);
+      throw new OperationException(
+          "get service message fails", e);
     }
-    return null;
   }
 
   /**
@@ -238,7 +264,8 @@ public class ServiceCenterClient {
    *
    * @param instance
    * @param serviceId
-   * @return service instanceId ; when error happens,return null
+   * @return instanceId
+   * @throws OperationException
    */
   public String registerMicroserviceInstance(MicroserviceInstance instance, 
String serviceId) {
     try {
@@ -249,20 +276,23 @@ public class ServiceCenterClient {
       if (response.getStatusCode() == HttpStatus.SC_OK) {
         return response.getContent();
       } else {
-        LOGGER.error("register service instance fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "register service instance fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("register service instance fails", e);
+      throw new OperationException(
+          "register service instance fails", e);
     }
-    return null;
   }
 
   /**
    * Find microservice instances of service-center
    *
    * @param serviceId
-   * @return MicroserviceInstancesResponse ; when error happens,return null
+   * @return MicroserviceInstancesResponse
+   * @throws OperationException
    */
   public MicroserviceInstancesResponse getMicroserviceInstanceList(String 
serviceId) {
     try {
@@ -272,13 +302,15 @@ public class ServiceCenterClient {
         ObjectMapper mapper = new ObjectMapper();
         return mapper.readValue(response.getContent(), 
MicroserviceInstancesResponse.class);
       } else {
-        LOGGER.error("get service instances list fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "get service instances list fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("get service instance list fails", e);
+      throw new OperationException(
+          "get service instances list fails", e);
     }
-    return null;
   }
 
   /**
@@ -286,7 +318,8 @@ public class ServiceCenterClient {
    *
    * @param serviceId
    * @param instanceId
-   * @return MicroserviceInstance; when error happens,return null
+   * @return MicroserviceInstance
+   * @throws OperationException
    */
   @SuppressWarnings("unchecked")
   public MicroserviceInstance getMicroserviceInstance(String serviceId, String 
instanceId) {
@@ -298,13 +331,15 @@ public class ServiceCenterClient {
         JsonNode jsonNode = mapper.readTree(response.getContent());
         return mapper.readValue(jsonNode.get("instance").toString(), 
MicroserviceInstance.class);
       } else {
-        LOGGER.error("get service instance message fails, 
responseStatusCode={}, responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "get service instance message fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("get service instance message fails", e);
+      throw new OperationException(
+          "get service instance message fails", e);
     }
-    return null;
   }
 
   /**
@@ -313,6 +348,7 @@ public class ServiceCenterClient {
    * @param serviceId
    * @param instanceId
    * @return
+   * @throws OperationException
    */
   public void deleteMicroserviceInstance(String serviceId, String instanceId) {
     try {
@@ -321,11 +357,14 @@ public class ServiceCenterClient {
       if (response.getStatusCode() == HttpStatus.SC_OK) {
         LOGGER.info("DELETE SERVICE INSTANCE OK");
       } else {
-        LOGGER.error("delete service instance fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "delete service instance fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("delete service instance fails", e);
+      throw new OperationException(
+          "delete service instance fails", e);
     }
   }
 
@@ -335,7 +374,8 @@ public class ServiceCenterClient {
    * @param serviceId
    * @param instanceId
    * @param status
-   * @return
+   * @return true
+   * @throws OperationException
    */
   public boolean updateMicroserviceInstanceStatus(String serviceId, String 
instanceId,
       MicroserviceInstanceStatus status) {
@@ -346,14 +386,15 @@ public class ServiceCenterClient {
         LOGGER.info("UPDATE STATUS OK");
         return true;
       } else {
-        LOGGER
-            .error("update service instance status fails, 
responseStatusCode={}, responseMessage={}, responseContent{}",
-                response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "update service instance status fails, statusCode = " + 
response.getStatusCode() + "; message = " + response
+                .getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("update service instance status fails", e);
+      throw new OperationException(
+          "update service instance status fails", e);
     }
-    return false;
   }
 
   /**
@@ -361,6 +402,7 @@ public class ServiceCenterClient {
    *
    * @param heartbeatsRequest
    * @return
+   * @throws OperationException
    */
   public void sendHeartBeats(HeartbeatsRequest heartbeatsRequest) {
     try {
@@ -369,13 +411,15 @@ public class ServiceCenterClient {
           .putHttpRequest("/registry/heartbeats", null, 
mapper.writeValueAsString(heartbeatsRequest));
 
       if (response.getStatusCode() == HttpStatus.SC_OK) {
-        LOGGER.info("SEND HEARTBEATS OK");
+        LOGGER.info("HEARTBEATS SUCCESS");
       } else {
-        LOGGER.error("send heartbeats fails, responseStatusCode={}, 
responseMessage={}, responseContent{}",
-            response.getStatusCode(), response.getMessage(), 
response.getContent());
+        throw new OperationException(
+            "heartbeats fails, statusCode = " + response.getStatusCode() + "; 
message = " + response.getMessage()
+                + "; content = " + response.getContent());
       }
     } catch (IOException e) {
-      LOGGER.error("send heartbeats fails", e);
+      throw new OperationException(
+          "heartbeats fails ", e);
     }
   }
 }
diff --git 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
index e503056..741ed89 100755
--- 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
+++ 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClient.java
@@ -37,29 +37,38 @@ public class ServiceCenterRawClient {
 
   private static final int DEFAULT_PORT = 30100;
 
-  private static final String DOMAIN_NAME = "default";
+  private static final String PROJECT_NAME = "default";
 
   private static final String V4_PREFIX = "v4";
 
+  private static final String HEADER_TENANT_NAME = "x-domain-name";
+
+  private static final String DEFAULT_HEADER_TENANT_NAME = "default";
+
   private String basePath;
 
   private String host;
 
   private int port;
 
-  private String domainName;
+  private String projectName;
+
+  private String tenantName;
 
   private HttpTransport httpTransport;
 
   public ServiceCenterRawClient() {
-    this(DEFAULT_HOST, DEFAULT_PORT, DOMAIN_NAME, 
HttpTransportFactory.getDefaultHttpTransport());
+    this(DEFAULT_HOST, DEFAULT_PORT, PROJECT_NAME, 
HttpTransportFactory.getDefaultHttpTransport(),
+        DEFAULT_HEADER_TENANT_NAME);
   }
 
-  private ServiceCenterRawClient(String host, int port, String domainName, 
HttpTransport httpTransport) {
+  private ServiceCenterRawClient(String host, int port, String projectName, 
HttpTransport httpTransport,
+      String tenantName) {
     this.host = host;
     this.port = port;
-    this.domainName = domainName;
+    this.projectName = projectName;
     this.httpTransport = httpTransport;
+    this.tenantName = tenantName;
 
     // check that host has scheme or not
     String hostLowercase = host.toLowerCase();
@@ -72,59 +81,34 @@ public class ServiceCenterRawClient {
       }
     }
 
-    this.basePath = host + ":" + port + "/" + V4_PREFIX + "/" + domainName;
+    this.basePath = host + ":" + port + "/" + V4_PREFIX + "/" + projectName;
   }
 
   public HttpResponse getHttpRequest(String url, Map<String, String> headers, 
String content) throws IOException {
-
-    if (headers == null) {
-      headers = new HashMap<String, String>();
-    }
-
-    HttpRequest httpRequest = new HttpRequest(basePath + url, headers, 
content);
-
-    return httpTransport.get(httpRequest);
+    return doHttpRequest(url, headers, content, HttpRequest.GET);
   }
 
   public HttpResponse postHttpRequest(String url, Map<String, String> headers, 
String content) throws IOException {
-
-    if (headers == null) {
-      headers = new HashMap<String, String>();
-    }
-
-    HttpRequest httpRequest = new HttpRequest(basePath + url, headers, 
content);
-
-    return httpTransport.post(httpRequest);
+    return doHttpRequest(url, headers, content, HttpRequest.POST);
   }
 
   public HttpResponse putHttpRequest(String url, Map<String, String> headers, 
String content) throws IOException {
-
-    if (headers == null) {
-      headers = new HashMap<String, String>();
-    }
-
-    HttpRequest httpRequest = new HttpRequest(basePath + url, headers, 
content);
-
-    return httpTransport.put(httpRequest);
+    return doHttpRequest(url, headers, content, HttpRequest.PUT);
   }
 
   public HttpResponse deleteHttpRequest(String url, Map<String, String> 
headers, String content) throws IOException {
+    return doHttpRequest(url, headers, content, HttpRequest.DELETE);
+  }
 
+  private HttpResponse doHttpRequest(String url, Map<String, String> headers, 
String content, String method)
+      throws IOException {
     if (headers == null) {
-      headers = new HashMap<String, String>();
+      headers = new HashMap<>();
     }
+    headers.put(HEADER_TENANT_NAME, tenantName);
+    HttpRequest httpRequest = new HttpRequest(basePath + url, headers, 
content, method);
 
-    HttpRequest httpRequest = new HttpRequest(basePath + url, headers, 
content);
-
-    return httpTransport.delete(httpRequest);
-  }
-
-  public HttpTransport getHttpTransport() {
-    return httpTransport;
-  }
-
-  public void setHttpTransport(HttpTransport httpTransport) {
-    this.httpTransport = httpTransport;
+    return httpTransport.doRequest(httpRequest);
   }
 
   public static class Builder {
@@ -132,25 +116,28 @@ public class ServiceCenterRawClient {
 
     private int port;
 
-    private String domainName;
+    private String projectName;
+
+    private String tenantName;
 
     private HttpTransport httpTransport = 
HttpTransportFactory.getDefaultHttpTransport();
 
     public Builder() {
       this.host = DEFAULT_HOST;
       this.port = DEFAULT_PORT;
-      this.domainName = DOMAIN_NAME;
+      this.projectName = PROJECT_NAME;
+      this.tenantName = DEFAULT_HEADER_TENANT_NAME;
     }
 
-    public String getDomainName() {
-      return domainName;
+    public String getProjectName() {
+      return projectName;
     }
 
-    public Builder setDomainName(String domain_name) {
-      if (domain_name == null) {
-        domain_name = DOMAIN_NAME;
+    public Builder setProjectName(String projectName) {
+      if (projectName == null) {
+        projectName = PROJECT_NAME;
       }
-      this.domainName = domain_name;
+      this.projectName = projectName;
       return this;
     }
 
@@ -192,9 +179,16 @@ public class ServiceCenterRawClient {
       return this;
     }
 
+    public Builder setTenantName(String tenantName) {
+      if (tenantName == null) {
+        tenantName = DEFAULT_HEADER_TENANT_NAME;
+      }
+      this.tenantName = tenantName;
+      return this;
+    }
 
     public ServiceCenterRawClient build() {
-      return new ServiceCenterRawClient(host, port, domainName, httpTransport);
+      return new ServiceCenterRawClient(host, port, projectName, 
httpTransport, tenantName);
     }
   }
 }
diff --git 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/exception/OperationException.java
old mode 100755
new mode 100644
similarity index 57%
copy from 
client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
copy to 
client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/exception/OperationException.java
index 24397b0..95cb1a7
--- 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
+++ 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/exception/OperationException.java
@@ -1,47 +1,42 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.service.center.client.http;
-
-import java.util.Map;
-
-public class HttpRequest {
-
-  private String url;
-
-  private Map<String, String> headers;
-
-  private String content;
-
-  public HttpRequest(String url, Map<String, String> headers, String content) {
-    this.url = url;
-    this.headers = headers;
-    this.content = content;
-  }
-
-  public String getUrl() {
-    return url;
-  }
-
-  public Map<String, String> getHeaders() {
-    return headers;
-  }
-
-  public String getContent() {
-    return content;
-  }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.servicecomb.service.center.client.exception;
+
+public class OperationException extends RuntimeException {
+
+  private static final long serialVersionUID = 1L;
+
+  public OperationException() {
+  }
+
+  public OperationException(String message) {
+    super(message);
+  }
+
+  public OperationException(String message, Throwable cause) {
+    super(message, cause);
+  }
+
+  public OperationException(Throwable cause) {
+    super(cause);
+  }
+
+  public OperationException(String message, Throwable cause, boolean 
enableSuppression, boolean writableStackTrace) {
+    super(message, cause, enableSuppression, writableStackTrace);
+  }
+}
diff --git 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
index 24397b0..d10034c 100755
--- 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
+++ 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpRequest.java
@@ -17,20 +17,41 @@
 
 package org.apache.servicecomb.service.center.client.http;
 
+import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
+
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.client.methods.RequestBuilder;
+import org.apache.http.entity.StringEntity;
 
 public class HttpRequest {
 
+  public static final String GET = "GET";
+
+  public static final String POST = "POST";
+
+  public static final String DELETE = "DELETE";
+
+  public static final String PUT = "PUT";
+
+  private String method;
+
   private String url;
 
   private Map<String, String> headers;
 
   private String content;
 
-  public HttpRequest(String url, Map<String, String> headers, String content) {
+  public HttpRequest(String url, Map<String, String> headers, String content, 
String method) {
     this.url = url;
     this.headers = headers;
     this.content = content;
+    this.method = method;
   }
 
   public String getUrl() {
@@ -41,7 +62,59 @@ public class HttpRequest {
     return headers;
   }
 
+  public void addHeader(String name, String value) {
+    if (headers == null) {
+      headers = new HashMap<>();
+    }
+    headers.put(name, value);
+  }
+
   public String getContent() {
     return content;
   }
+
+  public String getMethod() {
+    return method;
+  }
+
+  public void setMethod(String method) {
+    this.method = method;
+  }
+
+  public HttpUriRequest getRealRequest() {
+
+    HttpUriRequest httpUriRequest = null;
+
+    switch (method) {
+      case GET: {
+        httpUriRequest = new HttpGet(url);
+        break;
+      }
+      case POST: {
+        httpUriRequest = new HttpPost(url);
+        if (content != null) {
+          ((HttpPost) httpUriRequest).setEntity(new StringEntity(content, 
"UTF-8"));
+        }
+        break;
+      }
+      case DELETE: {
+        httpUriRequest = new HttpDelete(url);
+        break;
+      }
+      case PUT: {
+        httpUriRequest = new HttpPut(url);
+        if (content != null) {
+          ((HttpPut) httpUriRequest).setEntity(new StringEntity(content, 
"UTF-8"));
+        }
+        break;
+      }
+      default: {
+        httpUriRequest = RequestBuilder.create(method).build();
+      }
+    }
+
+    Optional.ofNullable(httpUriRequest).ifPresent(request -> 
headers.forEach(request::addHeader));
+
+    return httpUriRequest;
+  }
 }
diff --git 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransport.java
 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransport.java
index 802de7e..2ec7992 100755
--- 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransport.java
+++ 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransport.java
@@ -20,8 +20,6 @@ package org.apache.servicecomb.service.center.client.http;
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.http.client.methods.HttpUriRequest;
-
 /**
  * Created by   on 2019/10/16.
  */
@@ -35,7 +33,7 @@ public interface HttpTransport {
 
   HttpResponse delete(HttpRequest request) throws IOException;
 
-  HttpResponse doRequest(HttpUriRequest httpRequest) throws IOException;
+  HttpResponse doRequest(HttpRequest request) throws IOException;
 
   void addHeaders(Map<String, String> headers);
 }
diff --git 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransportImpl.java
 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransportImpl.java
index 1bbd87e..fce9bb7 100755
--- 
a/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransportImpl.java
+++ 
b/client/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/http/HttpTransportImpl.java
@@ -21,12 +21,6 @@ import java.io.IOException;
 import java.util.Map;
 
 import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
 
@@ -39,8 +33,6 @@ public class HttpTransportImpl implements HttpTransport {
 
   private static final String HEADER_USER_AGENT = "User-Agent";
 
-  private static final String HEADER_TENANT_NAME = "x-domain-name";
-
   protected HttpClient httpClient;
 
   private Map<String, String> globalHeaders;
@@ -59,53 +51,39 @@ public class HttpTransportImpl implements HttpTransport {
 
   @Override
   public HttpResponse get(HttpRequest request) throws IOException {
-
-    HttpGet httpGet = new HttpGet(request.getUrl());
-
-    return doRequest(httpGet);
+    request.setMethod(HttpRequest.GET);
+    return doRequest(request);
   }
 
   @Override
   public HttpResponse post(HttpRequest request) throws IOException {
-
-    HttpPost httpPost = new HttpPost(request.getUrl());
-
-    if (request.getContent() != null) {
-      httpPost.setEntity(new StringEntity(request.getContent(), "UTF-8"));
-    }
-    return doRequest(httpPost);
+    request.setMethod(HttpRequest.POST);
+    return doRequest(request);
   }
 
   @Override
   public HttpResponse put(HttpRequest request) throws IOException {
-
-    HttpPut httpPut = new HttpPut(request.getUrl());
-
-    if (request.getContent() != null) {
-      httpPut.setEntity(new StringEntity(request.getContent(), "UTF-8"));
-    }
-    return doRequest(httpPut);
+    request.setMethod(HttpRequest.PUT);
+    return doRequest(request);
   }
 
   @Override
   public HttpResponse delete(HttpRequest request) throws IOException {
-
-    HttpDelete httpDelete = new HttpDelete(request.getUrl());
-
-    return doRequest(httpDelete);
+    request.setMethod(HttpRequest.DELETE);
+    return doRequest(request);
   }
 
-  public HttpResponse doRequest(HttpUriRequest httpRequest) throws IOException 
{
+  public HttpResponse doRequest(HttpRequest httpRequest) throws IOException {
     //add header
     httpRequest.addHeader(HEADER_CONTENT_TYPE, "application/json");
     httpRequest.addHeader(HEADER_USER_AGENT, 
"cse-serviceregistry-client/1.0.0");
-    httpRequest.addHeader(HEADER_TENANT_NAME, "default");
+
     if (globalHeaders != null) {
-      globalHeaders.forEach((key, value) -> httpRequest.addHeader(key, value));
+      globalHeaders.forEach(httpRequest::addHeader);
     }
 
     //get Http response
-    org.apache.http.HttpResponse response = httpClient.execute(httpRequest);
+    org.apache.http.HttpResponse response = 
httpClient.execute(httpRequest.getRealRequest());
 
     int statusCode = response.getStatusLine().getStatusCode();
     String messgae = response.getStatusLine().getReasonPhrase();
diff --git 
a/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/HttpTransportImplTest.java
 
b/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/HttpTransportImplTest.java
index dd2b523..d525a66 100644
--- 
a/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/HttpTransportImplTest.java
+++ 
b/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/HttpTransportImplTest.java
@@ -59,7 +59,7 @@ public class HttpTransportImplTest {
     extraHeaders.put("test", "testContext");
     httpTransport.addHeaders(extraHeaders);
 
-    HttpRequest httpRequest = new HttpRequest("111", null, null);
+    HttpRequest httpRequest = new HttpRequest("111", null, null, 
HttpRequest.GET);
     HttpResponse actualResponse = httpTransport.get(httpRequest);
 
     Assert.assertNotNull(actualResponse);
diff --git 
a/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClientTest.java
 
b/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClientTest.java
index 5ee4c86..6c32435 100755
--- 
a/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClientTest.java
+++ 
b/client/service-center-client/src/test/java/org/apache/servicecomb/service/center/client/ServiceCenterRawClientTest.java
@@ -34,7 +34,9 @@ public class ServiceCenterRawClientTest {
 
   private static final int DEFAULT_PORT = 30100;
 
-  private static final String DOMAIN_NAME = "default";
+  private static final String PROJECT_NAME = "default";
+
+  private static final String TENANT_NAME = "default";
 
   @Test
   public void TestDefaultParameter() throws IOException {
@@ -45,17 +47,15 @@ public class ServiceCenterRawClientTest {
         .setHttpTransport(httpTransport)
         .setHost(DEFAULT_HOST)
         .setPort(DEFAULT_PORT)
-        .setDomainName(DOMAIN_NAME)
+        .setProjectName(PROJECT_NAME)
+        .setTenantName(TENANT_NAME)
         .build();
 
     HttpResponse httpResponse = new HttpResponse();
     httpResponse.setStatusCode(200);
     httpResponse.setContent("ok");
 
-    Mockito.when(httpTransport.get(Mockito.any())).thenReturn(httpResponse);
-    Mockito.when(httpTransport.post(Mockito.any())).thenReturn(httpResponse);
-    Mockito.when(httpTransport.put(Mockito.any())).thenReturn(httpResponse);
-    Mockito.when(httpTransport.delete(Mockito.any())).thenReturn(httpResponse);
+    
Mockito.when(httpTransport.doRequest(Mockito.any())).thenReturn(httpResponse);
 
     HttpResponse actualGetResponse = client.getHttpRequest(null, null, null);
     HttpResponse actualPostResponse = client.postHttpRequest(null, null, null);

Reply via email to