X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fmsb%2Fsdk%2Fhttpclient%2Fbuilder%2Fimpl%2FClientRetrofitObjectBuilder.java;h=7b7c6afcb8811f839324e702bb338cd20dd70178;hb=342e59ba8f874e692fb508d975448e6d0abaf266;hp=e7f7cd5be33fb9d53e74eb5d992574db86463d2f;hpb=97e4489fd90faf3addec24ebfe6ca87f191d99ec;p=msb%2Fjava-sdk.git 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 buildRetrofitObject( - AtomicReference> 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 buildRetrofitObject( + AtomicReference> endPointToRetrofitRef, + ServiceHttpEndPointObject lastEndPoint) throws RetrofitServiceRuntimeException { - Map srvEndPointToRetrofit = endPointToRetrofitRef.get(); - if (srvEndPointToRetrofit == null) { - srvEndPointToRetrofit = new LinkedHashMap<>(); - try { + Map 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 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 nodeInfos = new HashSet<>(); - nodeInfos.add(nodeInfo); - cloneFuleInfo.setNodes(nodeInfos); - return cloneFuleInfo; - } }