aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorHuabingZhao <zhao.huabing@zte.com.cn>2018-02-26 16:33:57 +0800
committerHuabingZhao <zhao.huabing@zte.com.cn>2018-02-26 16:34:14 +0800
commit342e59ba8f874e692fb508d975448e6d0abaf266 (patch)
tree3f2fb664d8a3bcdb79d0218125fb2f2a2cd9377a /src/main/java
parent97e4489fd90faf3addec24ebfe6ca87f191d99ec (diff)
Support HTTPS service registration
Issue-ID: MSB-147 Change-Id: I2fa11b7869cdc512a64497482e814970b701ce33 Signed-off-by: HuabingZhao <zhao.huabing@zte.com.cn>
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/onap/msb/sdk/discovery/entity/MicroServiceInfo.java1
-rw-r--r--src/main/java/org/onap/msb/sdk/discovery/entity/Service.java350
-rw-r--r--src/main/java/org/onap/msb/sdk/httpclient/builder/impl/ClientRetrofitObjectBuilder.java209
3 files changed, 294 insertions, 266 deletions
diff --git a/src/main/java/org/onap/msb/sdk/discovery/entity/MicroServiceInfo.java b/src/main/java/org/onap/msb/sdk/discovery/entity/MicroServiceInfo.java
index 5b44369..c14d67a 100644
--- a/src/main/java/org/onap/msb/sdk/discovery/entity/MicroServiceInfo.java
+++ b/src/main/java/org/onap/msb/sdk/discovery/entity/MicroServiceInfo.java
@@ -33,6 +33,7 @@ public class MicroServiceInfo extends Service<Node> implements Serializable {
buf.append("url:").append(getUrl()).append("\r\n");
buf.append("protocol:").append(getProtocol()).append("\r\n");
buf.append("visualRange:").append(getVisualRange()).append("\r\n");
+ buf.append("enable_ssl:").append(isEnable_ssl()).append("\r\n");
buf.append("nodes:").append("\r\n");
for (Node nodeInstace : this.getNodes()) {
diff --git a/src/main/java/org/onap/msb/sdk/discovery/entity/Service.java b/src/main/java/org/onap/msb/sdk/discovery/entity/Service.java
index 306e59b..6a5a883 100644
--- a/src/main/java/org/onap/msb/sdk/discovery/entity/Service.java
+++ b/src/main/java/org/onap/msb/sdk/discovery/entity/Service.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright 2017 ZTE, Inc. and others.
+ * Copyright 2017-2018 ZTE, Inc. and others.
*
* Licensed 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
@@ -21,164 +21,194 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Service<T> implements Serializable {
- private static final long serialVersionUID = 1L;
-
- private String serviceName;
-
- private String version = "";
-
- private String url = "";
-
- //REST、UI
- private String protocol = "";
- //0: External 1: Internal
- private String visualRange = "1";
-
- private String lb_policy = "";
-
- private String path = "";
-
- private Set<T> nodes;
-
- private List<KeyVaulePair> metadata;
-
- public String getPath() {
- return path;
- }
-
- /**
- * The customized publish path of this service.
- * If this parameter is specified when registering the service, the service will be published to api gateway under this path.
- * Otherwise, the service will be published to api gateway using a fixed format: api/{serviceName} /{version}.
- * Do not specific a path unless you know what you're doing.
- * @param path
- */
- public void setPath(String path) {
- this.path = path;
- }
-
- /**
- * Load balancing method used when MSB routes the service requests. Currently, Round robin and IP hash are supported.
- * @return
- */
- public String getLb_policy() {
- return lb_policy;
- }
-
- /**
- * Load balancing method used when MSB routes the service requests. Currently, Round robin and IP hash are supported.
- * @param lb_policy (round-robin,ip_hash)
- * @return void
- */
- public void setLb_policy(String lb_policy) {
- this.lb_policy = lb_policy;
- }
-
- public List<KeyVaulePair> getMetadata() {
- return metadata;
- }
-
- public void setMetadata(List<KeyVaulePair> metadata) {
- this.metadata = metadata;
- }
-
- /**
- * The service instance nodes
- */
- public Set<T> getNodes() {
- return nodes;
- }
-
- /**
- * The service instance nodes
- * @param nodes
- * @return void
- */
- public void setNodes(Set<T> nodes) {
- this.nodes = nodes;
- }
-
- /**
- * An unique name of the service, it should be constant so the service consumer can access the service.
- */
- public String getServiceName() {
- return serviceName;
- }
-
- /**
- * An unique name of the service, it should be constant so the service consumer can access the service.
- * @param serviceName
- */
- public void setServiceName(String serviceName) {
- this.serviceName = serviceName;
- }
-
- /**
- * Service version. Only the major version of service is used in the URI.
- * @return
- */
- public String getVersion() {
- return version;
- }
-
- /**
- * Service version. Only the major version of service is used in the URI.
- * @param version
- */
- public void setVersion(String version) {
- this.version = version;
- }
-
- /**
- * The actual URL of the service to be registered.
- * @return
- */
- public String getUrl() {
- return url;
- }
-
- /**
- * The actual URL of the service to be registered.
- * @param url
- * @return void
- */
- public void setUrl(String url) {
- this.url = url;
- }
-
- /**
- * supported protocols: 'REST', 'UI'
- * @return
- */
- public String getProtocol() {
- return protocol;
- }
-
- /**
- * supported protocols: 'REST', 'UI'
- * @param protocol
- */
- public void setProtocol(String protocol) {
- this.protocol = protocol;
- }
-
- /**
- * Visibility of the service.
- * External(can be accessed by external systems):0
- * Internal(can only be accessed by ONAP microservices):1
- */
- public String getVisualRange() {
- return visualRange;
- }
-
- /**
- * Visibility of the service.
- * External(can be accessed by external systems):0
- * Internal(can only be accessed by ONAP microservices):1
- * @param visualRange
- */
- public void setVisualRange(String visualRange) {
- this.visualRange = visualRange;
- }
+ private static final long serialVersionUID = 1L;
+
+ private String serviceName;
+
+ private String version = "";
+
+ private String url = "";
+
+ // REST、UI
+ private String protocol = "";
+ // 0: External 1: Internal
+ private String visualRange = "1";
+
+ private String lb_policy = "";
+
+ private String path = "";
+
+ private Set<T> nodes;
+
+ private List<KeyVaulePair> metadata;
+
+ private boolean enable_ssl = false;
+
+ /**
+ * @return the enable_ssl
+ */
+ public boolean isEnable_ssl() {
+ return enable_ssl;
+ }
+
+ /**
+ * @param enable_ssl the enable_ssl to set
+ */
+ public void setEnable_ssl(boolean enable_ssl) {
+ this.enable_ssl = enable_ssl;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * The customized publish path of this service. If this parameter is specified when registering
+ * the service, the service will be published to api gateway under this path. Otherwise, the
+ * service will be published to api gateway using a fixed format: api/{serviceName} /{version}.
+ * Do not specific a path unless you know what you're doing.
+ *
+ * @param path
+ */
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ /**
+ * Load balancing method used when MSB routes the service requests. Currently, Round robin and
+ * IP hash are supported.
+ *
+ * @return
+ */
+ public String getLb_policy() {
+ return lb_policy;
+ }
+
+ /**
+ * Load balancing method used when MSB routes the service requests. Currently, Round robin and
+ * IP hash are supported.
+ *
+ * @param lb_policy (round-robin,ip_hash)
+ * @return void
+ */
+ public void setLb_policy(String lb_policy) {
+ this.lb_policy = lb_policy;
+ }
+
+ public List<KeyVaulePair> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(List<KeyVaulePair> metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * The service instance nodes
+ */
+ public Set<T> getNodes() {
+ return nodes;
+ }
+
+ /**
+ * The service instance nodes
+ *
+ * @param nodes
+ * @return void
+ */
+ public void setNodes(Set<T> nodes) {
+ this.nodes = nodes;
+ }
+
+ /**
+ * An unique name of the service, it should be constant so the service consumer can access the
+ * service.
+ */
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ /**
+ * An unique name of the service, it should be constant so the service consumer can access the
+ * service.
+ *
+ * @param serviceName
+ */
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+
+ /**
+ * Service version. Only the major version of service is used in the URI.
+ *
+ * @return
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * Service version. Only the major version of service is used in the URI.
+ *
+ * @param version
+ */
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ /**
+ * The actual URL of the service to be registered.
+ *
+ * @return
+ */
+ public String getUrl() {
+ return url;
+ }
+
+ /**
+ * The actual URL of the service to be registered.
+ *
+ * @param url
+ * @return void
+ */
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ /**
+ * supported protocols: 'REST', 'UI'
+ *
+ * @return
+ */
+ public String getProtocol() {
+ return protocol;
+ }
+
+ /**
+ * supported protocols: 'REST', 'UI'
+ *
+ * @param protocol
+ */
+ public void setProtocol(String protocol) {
+ this.protocol = protocol;
+ }
+
+ /**
+ * Visibility of the service. External(can be accessed by external systems):0 Internal(can only
+ * be accessed by ONAP microservices):1
+ */
+ public String getVisualRange() {
+ return visualRange;
+ }
+
+ /**
+ * Visibility of the service. External(can be accessed by external systems):0 Internal(can only
+ * be accessed by ONAP microservices):1
+ *
+ * @param visualRange
+ */
+ public void setVisualRange(String visualRange) {
+ this.visualRange = visualRange;
+ }
}
diff --git a/src/main/java/org/onap/msb/sdk/httpclient/builder/impl/ClientRetrofitObjectBuilder.java b/src/main/java/org/onap/msb/sdk/httpclient/builder/impl/ClientRetrofitObjectBuilder.java
index e7f7cd5..7b7c6af 100644
--- a/src/main/java/org/onap/msb/sdk/httpclient/builder/impl/ClientRetrofitObjectBuilder.java
+++ b/src/main/java/org/onap/msb/sdk/httpclient/builder/impl/ClientRetrofitObjectBuilder.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright 2017 ZTE, Inc. and others.
+ * Copyright 2017-2018 ZTE, Inc. and others.
*
* Licensed 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
@@ -41,141 +41,138 @@ import retrofit2.Retrofit;
public class ClientRetrofitObjectBuilder implements IRetrofitObjectBuilder {
- private RetrofitServiceHandlerContext context;
+ private RetrofitServiceHandlerContext context;
- public ClientRetrofitObjectBuilder(RetrofitServiceHandlerContext context) {
- super();
- this.context = context;
- }
+ public ClientRetrofitObjectBuilder(RetrofitServiceHandlerContext context) {
+ super();
+ this.context = context;
+ }
- /*
- * (non-Javadoc)
- *
- * @see
- * com.zte.ums.zenap.httpclient.retrofit.builder.IRetrofitObjectBuilder#buildRetrofitObject(java.
- * util.concurrent.atomic.AtomicReference)
- */
- @Override
- public Map<ServiceHttpEndPointObject, Object> buildRetrofitObject(
- AtomicReference<Map<ServiceHttpEndPointObject, Object>> endPointToRetrofitRef,
- ServiceHttpEndPointObject lastEndPoint) throws RetrofitServiceRuntimeException {
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.zte.ums.zenap.httpclient.retrofit.builder.IRetrofitObjectBuilder#buildRetrofitObject(
+ * java. util.concurrent.atomic.AtomicReference)
+ */
+ @Override
+ public Map<ServiceHttpEndPointObject, Object> buildRetrofitObject(
+ AtomicReference<Map<ServiceHttpEndPointObject, Object>> endPointToRetrofitRef,
+ ServiceHttpEndPointObject lastEndPoint) throws RetrofitServiceRuntimeException {
- Map<ServiceHttpEndPointObject, Object> srvEndPointToRetrofit = endPointToRetrofitRef.get();
- if (srvEndPointToRetrofit == null) {
- srvEndPointToRetrofit = new LinkedHashMap<>();
- try {
+ Map<ServiceHttpEndPointObject, Object> srvEndPointToRetrofit = endPointToRetrofitRef.get();
+ if (srvEndPointToRetrofit == null) {
+ srvEndPointToRetrofit = new LinkedHashMap<>();
+ try {
- ServiceHttpEndPointBeanObject srvhttpEndPointBeanObject =
- context.getServiceHttpEndPointBeanObject();
+ ServiceHttpEndPointBeanObject srvhttpEndPointBeanObject = context.getServiceHttpEndPointBeanObject();
- // MsbClientFactory msbClient = context.getLocator().getService(MsbClientFactory.class);
+ // MsbClientFactory msbClient =
+ // context.getLocator().getService(MsbClientFactory.class);
- MicroServiceFullInfo fullInfo = null;
+ MicroServiceFullInfo fullInfo = null;
- fullInfo =
- context.getMsbClient().queryMicroServiceInfo(srvhttpEndPointBeanObject.getServiceName(),
- srvhttpEndPointBeanObject.getServiceVersion());
+ fullInfo = context.getMsbClient().queryMicroServiceInfo(srvhttpEndPointBeanObject.getServiceName(),
+ srvhttpEndPointBeanObject.getServiceVersion());
- for (NodeInfo nodeInfo : fullInfo.getNodes()) {
+ for (NodeInfo nodeInfo : fullInfo.getNodes()) {
- MicroServiceFullInfo cloneFullInfo = cloneFullInfo(fullInfo, nodeInfo);
+ MicroServiceFullInfo cloneFullInfo = cloneFullInfo(fullInfo, nodeInfo);
- ServiceHttpEndPointObject endPointObj =
- new ServiceHttpEndPointObject(srvhttpEndPointBeanObject.getServiceName(),
- srvhttpEndPointBeanObject.getServiceVersion(), nodeInfo, cloneFullInfo);
+ ServiceHttpEndPointObject endPointObj = new ServiceHttpEndPointObject(
+ srvhttpEndPointBeanObject.getServiceName(),
+ srvhttpEndPointBeanObject.getServiceVersion(), nodeInfo, cloneFullInfo);
- // 目前支持http
- String baseUrl = null;
- if (fullInfo.getUrl() == null || fullInfo.getUrl().trim().length() == 0
- || fullInfo.getUrl().equals("/")) {
- baseUrl = String.format("http://%s:%s/", nodeInfo.getIp(), nodeInfo.getPort());
- } else {
- baseUrl = String.format("http://%s:%s%s/", nodeInfo.getIp(), nodeInfo.getPort(),
- fullInfo.getUrl());
- }
+ // 目前支持http
+ String baseUrl = null;
+ if (fullInfo.getUrl() == null || fullInfo.getUrl().trim().length() == 0
+ || fullInfo.getUrl().equals("/")) {
+ baseUrl = String.format("http://%s:%s/", nodeInfo.getIp(), nodeInfo.getPort());
+ } else {
+ baseUrl = String.format("http://%s:%s%s/", nodeInfo.getIp(), nodeInfo.getPort(),
+ fullInfo.getUrl());
+ }
- OkHttpClient httpClient = null;
+ OkHttpClient httpClient = null;
- if (context.getHttpClientConf() != null) {
- if (srvhttpEndPointBeanObject.getClientProtocl().toLowerCase().equals("https")) {
- httpClient =
- RetrofitServiceUtils.buildDefaultOkHttpsClient(context.getHttpClientConf());
- } else {
- httpClient =
- RetrofitServiceUtils.buildDefaultOkHttpClient(context.getHttpClientConf());
- }
- } else {
- if (srvhttpEndPointBeanObject.getClientProtocl().toLowerCase().equals("https")) {
- httpClient = RetrofitServiceUtils.buildDefaultOkHttpsClient(
- RetrofitServiceHandlerContext.getGlobalHttpClientConf());
- } else {
- httpClient = RetrofitServiceUtils.buildDefaultOkHttpClient(
- RetrofitServiceHandlerContext.getGlobalHttpClientConf());
- }
- }
+ if (context.getHttpClientConf() != null) {
+ if (srvhttpEndPointBeanObject.getClientProtocl().toLowerCase().equals("https")) {
+ httpClient = RetrofitServiceUtils.buildDefaultOkHttpsClient(context.getHttpClientConf());
+ } else {
+ httpClient = RetrofitServiceUtils.buildDefaultOkHttpClient(context.getHttpClientConf());
+ }
+ } else {
+ if (srvhttpEndPointBeanObject.getClientProtocl().toLowerCase().equals("https")) {
+ httpClient = RetrofitServiceUtils.buildDefaultOkHttpsClient(
+ RetrofitServiceHandlerContext.getGlobalHttpClientConf());
+ } else {
+ httpClient = RetrofitServiceUtils.buildDefaultOkHttpClient(
+ RetrofitServiceHandlerContext.getGlobalHttpClientConf());
+ }
+ }
- Retrofit retrofit = new Retrofit.Builder().client(httpClient).baseUrl(baseUrl)
- .addConverterFactory(context.getConverterFactoryBuilder().buildConverterFactory())
- .build();
+ Retrofit retrofit = new Retrofit.Builder().client(httpClient).baseUrl(baseUrl)
+ .addConverterFactory(context.getConverterFactoryBuilder().buildConverterFactory())
+ .build();
- srvEndPointToRetrofit.put(endPointObj,
- retrofit.create(context.getRetrofitSrvInterfaceClazz()));
+ srvEndPointToRetrofit.put(endPointObj, retrofit.create(context.getRetrofitSrvInterfaceClazz()));
- }
+ }
- if (srvEndPointToRetrofit.isEmpty()) {
- throw new RetrofitServiceRuntimeException(
- "can't find service in msb,serviceName:" + srvhttpEndPointBeanObject.getServiceName()
- + ",serviceVersion:" + srvhttpEndPointBeanObject.getServiceVersion());
- }
+ if (srvEndPointToRetrofit.isEmpty()) {
+ throw new RetrofitServiceRuntimeException("can't find service in msb,serviceName:"
+ + srvhttpEndPointBeanObject.getServiceName() + ",serviceVersion:"
+ + srvhttpEndPointBeanObject.getServiceVersion());
+ }
- if (lastEndPoint != null) {
- srvEndPointToRetrofit.remove(lastEndPoint);
- }
+ if (lastEndPoint != null) {
+ srvEndPointToRetrofit.remove(lastEndPoint);
+ }
- if (srvEndPointToRetrofit.isEmpty()) {
- throw new RetrofitServiceRuntimeException("can't find other service in msb,serviceName:"
- + srvhttpEndPointBeanObject.getServiceName() + ",serviceVersion:"
- + srvhttpEndPointBeanObject.getServiceVersion());
- }
+ if (srvEndPointToRetrofit.isEmpty()) {
+ throw new RetrofitServiceRuntimeException("can't find other service in msb,serviceName:"
+ + srvhttpEndPointBeanObject.getServiceName() + ",serviceVersion:"
+ + srvhttpEndPointBeanObject.getServiceVersion());
+ }
+
+ if (endPointToRetrofitRef.compareAndSet(null, srvEndPointToRetrofit)) {
+ context.setLastUpdateMsbTime(System.currentTimeMillis());
+ }
+
+ return endPointToRetrofitRef.get();
- if (endPointToRetrofitRef.compareAndSet(null, srvEndPointToRetrofit)) {
- context.setLastUpdateMsbTime(System.currentTimeMillis());
- }
- return endPointToRetrofitRef.get();
+ } catch (Exception e) {
+ throw new RetrofitServiceRuntimeException("init Retrofit service map fail", e);
+ }
+ } else {
+ return endPointToRetrofitRef.get();
+ }
+ }
- } catch (Exception e) {
- throw new RetrofitServiceRuntimeException("init Retrofit service map fail", e);
- }
- } else {
- return endPointToRetrofitRef.get();
+ private MicroServiceFullInfo cloneFullInfo(MicroServiceFullInfo fullInfo, NodeInfo nodeInfo) {
+
+ MicroServiceFullInfo cloneFuleInfo = new MicroServiceFullInfo();
+ cloneFuleInfo.setMetadata(fullInfo.getMetadata());
+ cloneFuleInfo.setProtocol(fullInfo.getProtocol());
+ cloneFuleInfo.setServiceName(fullInfo.getServiceName());
+ cloneFuleInfo.setStatus(fullInfo.getStatus());
+ cloneFuleInfo.setUrl(fullInfo.getUrl());
+ cloneFuleInfo.setVersion(fullInfo.getVersion());
+ cloneFuleInfo.setVisualRange(fullInfo.getVisualRange());
+ cloneFuleInfo.setEnable_ssl(fullInfo.isEnable_ssl());
+ Set<NodeInfo> nodeInfos = new HashSet<>();
+ nodeInfos.add(nodeInfo);
+ cloneFuleInfo.setNodes(nodeInfos);
+ return cloneFuleInfo;
}
- }
-
-
- private MicroServiceFullInfo cloneFullInfo(MicroServiceFullInfo fullInfo, NodeInfo nodeInfo) {
-
- MicroServiceFullInfo cloneFuleInfo = new MicroServiceFullInfo();
- cloneFuleInfo.setMetadata(fullInfo.getMetadata());
- cloneFuleInfo.setProtocol(fullInfo.getProtocol());
- cloneFuleInfo.setServiceName(fullInfo.getServiceName());
- cloneFuleInfo.setStatus(fullInfo.getStatus());
- cloneFuleInfo.setUrl(fullInfo.getUrl());
- cloneFuleInfo.setVersion(fullInfo.getVersion());
- cloneFuleInfo.setVisualRange(fullInfo.getVisualRange());
- Set<NodeInfo> nodeInfos = new HashSet<>();
- nodeInfos.add(nodeInfo);
- cloneFuleInfo.setNodes(nodeInfos);
- return cloneFuleInfo;
- }
}