From 4e7907983a99e695f2acba4dec8bd73b7dbe6b2b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 29 六月 2023 14:41:33 +0800
Subject: [PATCH] optimize

---
 java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java |  368 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 335 insertions(+), 33 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java b/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java
old mode 100644
new mode 100755
index 9df2dcd..cc2c0d0
--- a/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java
+++ b/java110-core/src/main/java/com/java110/core/factory/DataFlowFactory.java
@@ -2,21 +2,24 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.common.cache.MappingCache;
-import com.java110.common.constant.CommonConstant;
-import com.java110.common.constant.MappingConstant;
-import com.java110.common.constant.ResponseConstant;
-import com.java110.common.constant.StatusConstant;
-import com.java110.common.util.Assert;
-import com.java110.common.util.DateUtil;
+import com.java110.dto.system.*;
+import com.java110.utils.cache.AppRouteCache;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.core.context.AbstractDataFlowContext;
 import com.java110.core.context.ApiDataFlow;
 import com.java110.core.context.DataFlow;
-import com.java110.entity.center.AppRoute;
-import com.java110.entity.center.AppService;
-import com.java110.entity.center.Business;
-import com.java110.entity.center.DataFlowLinksCost;
+import com.java110.core.context.OrderDataFlow;
+import com.java110.dto.system.AppBusiness;
 import org.springframework.beans.BeanInstantiationException;
+import org.springframework.http.HttpHeaders;
+import org.springframework.util.MultiValueMap;
 
 import java.util.*;
 
@@ -59,7 +62,7 @@
      * @return
      */
     public static void addCostTime(AbstractDataFlowContext dataFlow, String linksCode, String linksName, Date startDate){
-        if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_COST_TIME_ON_OFF))) {
+        if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH,MappingConstant.KEY_COST_TIME_ON_OFF))) {
             DataFlowLinksCost dataFlowLinksCost = new DataFlowLinksCost().builder(linksCode, linksName, startDate, DateUtil.getCurrentDate());
             dataFlow.addLinksCostDates(dataFlowLinksCost);
         }
@@ -76,7 +79,7 @@
      * @return
      */
     public static void addCostTime(AbstractDataFlowContext dataFlow, String linksCode, String linksName, Date startDate, Date endDate){
-        if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_COST_TIME_ON_OFF))) {
+        if(MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH,MappingConstant.KEY_COST_TIME_ON_OFF))) {
             DataFlowLinksCost dataFlowLinksCost = new DataFlowLinksCost().builder(linksCode, linksName, startDate, endDate);
             dataFlow.addLinksCostDates(dataFlowLinksCost);
         }
@@ -123,6 +126,23 @@
         }
         return null;
     }
+
+    /**
+     * 鏍规嵁AppId 鍜宻erviceCode 鏌ヨAppRoute
+     * @param appId
+     * @param serviceCode
+     * @return
+     */
+    public static AppRoute getRoute(String appId,String serviceCode){
+        List<AppRoute> appRoutes = AppRouteCache.getAppRoute(appId);
+        for(AppRoute appRoute : appRoutes) {
+            if (StatusConstant.STATUS_CD_VALID.equals(appRoute.getStatusCd())
+                    &&appRoute.getAppService().getServiceCode().equals(serviceCode)){
+                return appRoute;
+            }
+        }
+        return null;
+    }
     /**
      * 鑾峰彇鍗曚釜鏈嶅姟
      * @param dataFlow
@@ -152,6 +172,20 @@
     }
 
     /**
+     * 鏍规嵁appid 鍜� serviceCode 鏌ヨ鐩稿簲鐨� appservice
+     * @param appId
+     * @param serviceCode
+     * @return
+     */
+    public static AppService getService(String appId,String serviceCode){
+        AppRoute route = getRoute(appId, serviceCode);
+        if(route == null){
+            return null;
+        }
+        return route.getAppService();
+    }
+
+    /**
      * 鑾峰彇Order淇℃伅
      * @param dataFlow
      * @return
@@ -166,6 +200,25 @@
         order.put("requestTime",dataFlow.getRequestTime());
         order.put("orderTypeCd",dataFlow.getOrderTypeCd());
         order.put("remark",dataFlow.getRemark());
+        order.put("statusCd",StatusConstant.STATUS_CD_SAVE);
+        return order ;
+    }
+
+    /**
+     * 鑾峰彇Order淇℃伅
+     * @param orders 璁㈠崟淇℃伅
+     * @return
+     */
+    public static Map getOrder(Orders orders){
+        Map order = new HashMap();
+        orders.setoId(GenerateCodeFactory.getOId());
+        order.put("oId",orders.getoId());
+        order.put("appId",orders.getAppId());
+        order.put("extTransactionId",orders.getExtTransactionId());
+        order.put("userId",orders.getUserId());
+        order.put("requestTime",orders.getRequestTime());
+        order.put("orderTypeCd",orders.getOrderTypeCd());
+        order.put("remark",orders.getRemark());
         order.put("statusCd",StatusConstant.STATUS_CD_SAVE);
         return order ;
     }
@@ -197,15 +250,37 @@
     }
 
     /**
+     * 鑾峰彇璁㈠崟灞炴��
+     * @param orders
+     * @return
+     */
+    public static List<Map> getOrderAttrs(Orders orders){
+        List<Map> orderAttrs = new ArrayList<Map>();
+
+        List<OrdersAttrs> attrs = orders.getOrdersAttrs();
+        Map attrMap = null;
+        for(OrdersAttrs ordersAttr:attrs)
+        {
+            ordersAttr.setAttrId(GenerateCodeFactory.getAttrId());
+            attrMap = new HashMap();
+            attrMap.put("oId",orders.getoId());
+            attrMap.put("attrId", ordersAttr.getAttrId());
+            attrMap.put("specCd",ordersAttr.getSpecCd());
+            attrMap.put("value",ordersAttr.getValue());
+            orderAttrs.add(attrMap);
+        }
+        return orderAttrs;
+    }
+    /**
      * 鑾峰彇璁㈠崟椤�
      * @param dataFlow
      * @return
      */
     public static List<Map> getBusiness(DataFlow dataFlow){
         List<Map> businesss = new ArrayList<Map>();
-        List<Business> businesses= dataFlow.getBusinesses();
+        List<AppBusiness> businesses= dataFlow.getBusinesses();
         Map busiMap = null;
-        for(Business business : businesses) {
+        for(AppBusiness business : businesses) {
             if(business == null){
                 continue;
             }
@@ -220,6 +295,33 @@
         }
         return businesss;
     }
+
+
+    /**
+     * 鑾峰彇璁㈠崟椤�
+     * @param dataFlow
+     * @return
+     */
+    public static List<Map> getBusiness(OrderDataFlow dataFlow){
+        List<Map> businesss = new ArrayList<Map>();
+        Map busiMap = null;
+        List<com.java110.dto.system.Business> businessList = dataFlow.getBusinessList();
+        for(com.java110.dto.system.Business business : businessList) {
+            if(business == null){
+                continue;
+            }
+            business.setbId(GenerateCodeFactory.getBId());
+            busiMap = new HashMap();
+            busiMap.put("oId",dataFlow.getOrders().getoId());
+            busiMap.put("businessTypeCd",business.getBusinessTypeCd());
+            busiMap.put("remark",business.getRemark());
+            busiMap.put("statusCd",StatusConstant.STATUS_CD_SAVE);
+            busiMap.put("bId",business.getbId());
+            businesss.add(busiMap);
+        }
+        return businesss;
+    }
+
 
     /**
      * 缁勮鎾ゅ崟鏁版嵁
@@ -240,14 +342,32 @@
     }
 
     /**
+     * 缁勮鎾ゅ崟鏁版嵁
+     * @param dataFlow
+     * @param message
+     * @return
+     */
+    public static List<Map> getDeleteOrderBusiness(OrderDataFlow dataFlow,String message){
+        List<Map> business = new ArrayList<Map>();
+        Map busiMap = new HashMap();
+        busiMap.put("oId",dataFlow.getOrders().getoId());
+        busiMap.put("businessTypeCd",StatusConstant.REQUEST_BUSINESS_TYPE_DELETE);
+        busiMap.put("remark",message);
+        busiMap.put("statusCd",StatusConstant.STATUS_CD_DELETE_ORDER);
+        busiMap.put("bId", GenerateCodeFactory.getBId());
+        business.add(busiMap);
+        return business;
+    }
+
+    /**
      * 鑾峰彇璁㈠崟灞炴��
      * @param dataFlow
      * @return
      */
     public static List<Map> getBusinessAttrs(DataFlow dataFlow){
         List<Map> businessAttrs = new ArrayList<Map>();
-        List<Business> businesses = dataFlow.getBusinesses();
-        for(Business business :businesses) {
+        List<AppBusiness> businesses = dataFlow.getBusinesses();
+        for(AppBusiness business :businesses) {
             if (business.getAttrs() == null || business.getAttrs().size() ==0) {
                 continue;
             }
@@ -259,6 +379,34 @@
                 attrMap.put("attrId", GenerateCodeFactory.getAttrId());
                 attrMap.put("specCd", attrs.getJSONObject(attrIndex).getString("specCd"));
                 attrMap.put("value", attrs.getJSONObject(attrIndex).getString("value"));
+                businessAttrs.add(attrMap);
+            }
+        }
+        return businessAttrs;
+    }
+
+
+    /**
+     * 鑾峰彇璁㈠崟灞炴��
+     * @param dataFlow
+     * @return
+     */
+    public static List<Map> getBusinessAttrs(OrderDataFlow dataFlow){
+        List<Map> businessAttrs = new ArrayList<Map>();
+        List<com.java110.dto.system.Business> businesses = dataFlow.getBusinessList();
+        for(com.java110.dto.system.Business business :businesses) {
+            if (business.getBusinessAttrs() == null || business.getBusinessAttrs().size() ==0) {
+                continue;
+            }
+            List<BusinessAttrs> attrs = business.getBusinessAttrs();
+            Map attrMap = null;
+            for (BusinessAttrs businessAttrs1 : attrs) {
+                attrMap = new HashMap();
+                businessAttrs1.setAttrId(GenerateCodeFactory.getAttrId());
+                attrMap.put("bId", business.getbId());
+                attrMap.put("attrId", businessAttrs1.getAttrId());
+                attrMap.put("specCd", businessAttrs1.getSpecCd());
+                attrMap.put("value", businessAttrs1.getValue());
                 businessAttrs.add(attrMap);
             }
         }
@@ -283,6 +431,19 @@
      * @param dataFlow
      * @return
      */
+    public static Map getNeedInvalidOrder(OrderDataFlow dataFlow){
+        Map order = new HashMap();
+        order.put("oId",dataFlow.getOrders().getoId());
+        // order.put("finishTime",DateUtil.getCurrentDate());
+        order.put("statusCd",StatusConstant.STATUS_CD_DELETE);
+        return order;
+    }
+
+    /**
+     * 鑾峰彇灏嗚浣滃簾鐨勮鍗�
+     * @param dataFlow
+     * @return
+     */
     public static Map getNeedErrorOrder(DataFlow dataFlow){
         Map order = new HashMap();
         order.put("oId",dataFlow.getoId());
@@ -294,7 +455,7 @@
     public static Map getNeedCompleteBusiness(DataFlow dataFlow){
         Map business = new HashMap();
         String bId = "";
-        for(Business busi:dataFlow.getBusinesses()){
+        for(AppBusiness busi:dataFlow.getBusinesses()){
             bId += busi.getbId()+",";
         }
         business.put("bId",bId.substring(0,bId.length()-1));
@@ -311,7 +472,7 @@
     public static Map getNeedBusinessComplete(DataFlow dataFlow){
         Map business = new HashMap();
         String bId = "";
-        for(Business busi:dataFlow.getBusinesses()){
+        for(AppBusiness busi:dataFlow.getBusinesses()){
             bId += busi.getbId()+",";
         }
         business.put("bId",bId.substring(0,bId.length()-1));
@@ -328,7 +489,24 @@
     public static Map getNeedDeleteBusiness(DataFlow dataFlow){
         Map business = new HashMap();
         String bId = "";
-        for(Business busi:dataFlow.getBusinesses()){
+        for(AppBusiness busi:dataFlow.getBusinesses()){
+            bId += busi.getbId()+",";
+        }
+        business.put("bId",bId.substring(0,bId.length()-1));
+        business.put("finishTime",DateUtil.getCurrentDate());
+        business.put("statusCd",StatusConstant.STATUS_CD_DELETE_ORDER);
+        return business;
+    }
+
+    /**
+     * Business 杩囩▼瀹屾垚
+     * @param dataFlow
+     * @return
+     */
+    public static Map getNeedDeleteBusiness(OrderDataFlow dataFlow){
+        Map business = new HashMap();
+        String bId = "";
+        for(com.java110.dto.system.Business busi:dataFlow.getBusinessList()){
             bId += busi.getbId()+",";
         }
         business.put("bId",bId.substring(0,bId.length()-1));
@@ -353,7 +531,7 @@
      */
     public static String getMoreBId(DataFlow dataFlow){
         String bId = "";
-        for(Business busi:dataFlow.getBusinesses()){
+        for(AppBusiness busi:dataFlow.getBusinesses()){
             bId += busi.getbId()+",";
         }
         return bId;
@@ -384,7 +562,7 @@
 
         JSONObject busi = null;
         JSONObject response = null;
-        for(Business business :dataFlow.getBusinesses()){
+        for(AppBusiness business :dataFlow.getBusinesses()){
             busi = new JSONObject();
             busi.put("bId",business.getbId());
             busi.put("serviceCode",business.getServiceCode());
@@ -409,7 +587,7 @@
 
         JSONObject busi = null;
         JSONObject response = null;
-        for(Business business :dataFlow.getBusinesses()){
+        for(AppBusiness business :dataFlow.getBusinesses()){
             busi = new JSONObject();
             busi.put("bId",business.getbId());
             busi.put("serviceCode",business.getServiceCode());
@@ -448,7 +626,7 @@
      * @param business
      * @return
      */
-    public static JSONObject getBusinessTableDataInfoToInstanceTableJson(DataFlow dataFlow,Business business){
+    public static JSONObject getBusinessTableDataInfoToInstanceTableJson(DataFlow dataFlow, AppBusiness business){
 
         JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_INSTANCE);
         JSONObject busi = null;
@@ -462,13 +640,28 @@
         return requestMessage;
     }
 
+    /**
+     * 鑾峰彇澶辫触娑堟伅鐨勬姤鏂囷紙璁㈠崟澶辫触鍚庨�氱煡涓氬姟绯荤粺锛�
+     * @param business
+     * @return
+     */
+    public static JSONObject getBusinessTableDataInfoToInstanceTableJson(OrderDataFlow dataFlow, com.java110.dto.system.Business business){
+
+        JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_INSTANCE);
+        JSONObject busi = null;
+        busi = new JSONObject();
+        busi.put("bId",business.getbId());
+        busi.put("businessTypeCd",business.getBusinessTypeCd());
+        requestMessage.put("business",busi);
+        return requestMessage;
+    }
 
     /**
      * 鍙戣捣鎾ゅ崟璇锋眰鎶ユ枃
      * @param business
      * @return
      */
-    public static JSONObject getDeleteInstanceTableJson(DataFlow dataFlow,Business business){
+    public static JSONObject getDeleteInstanceTableJson(DataFlow dataFlow, AppBusiness business){
 
         JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_DELETE);
         JSONObject busi = null;
@@ -476,6 +669,23 @@
         busi.put("bId",business.getbId());
         busi.put("serviceCode",business.getServiceCode());
         busi.put("serviceName",business.getServiceName());
+        //busi.put("datas",business.getDatas());
+        requestMessage.put("business",busi);
+        return requestMessage;
+    }
+
+    /**
+     * 鍙戣捣鎾ゅ崟璇锋眰鎶ユ枃
+     * @param business
+     * @return
+     */
+    public static JSONObject getDeleteInstanceTableJson(OrderDataFlow dataFlow, com.java110.dto.system.Business business){
+
+        JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_DELETE);
+        JSONObject busi = null;
+        busi = new JSONObject();
+        busi.put("bId",business.getbId());
+        busi.put("businessTypeCd",business.getBusinessTypeCd());
         //busi.put("datas",business.getDatas());
         requestMessage.put("business",busi);
         return requestMessage;
@@ -498,7 +708,7 @@
      * @param business
      * @return
      */
-    public static JSONObject getCompleteInstanceDataJson(DataFlow dataFlow,Business business){
+    public static JSONObject getCompleteInstanceDataJson(DataFlow dataFlow, AppBusiness business){
 
         JSONObject notifyMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE);
         //JSONObject businesses = notifyMessage.getJSONObject("business");
@@ -517,7 +727,7 @@
      * @param business
      * @return
      */
-    public static JSONObject getRequestBusinessJson(DataFlow dataFlow,Business business){
+    public static JSONObject getRequestBusinessJson(DataFlow dataFlow, AppBusiness business){
 
         JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_BUSINESS);
         //JSONObject businesses = notifyMessage.getJSONObject("business");
@@ -528,6 +738,26 @@
         busi.put("serviceName",business.getServiceName());
         busi.put("remark",business.getRemark());
         busi.put("datas",business.getDatas());
+        requestMessage.put("business",busi);
+        return requestMessage;
+    }
+
+
+    /**
+     * 鑾峰彇澶辫触娑堟伅鐨勬姤鏂囷紙璁㈠崟澶辫触鍚庨�氱煡涓氬姟绯荤粺锛�
+     * @param business
+     * @return
+     */
+    public static JSONObject getRequestBusinessJson(OrderDataFlow dataFlow, com.java110.dto.system.Business business){
+
+        JSONObject requestMessage = getTransactionBusinessBaseJson(dataFlow,StatusConstant.REQUEST_BUSINESS_TYPE_BUSINESS);
+        //JSONObject businesses = notifyMessage.getJSONObject("business");
+        JSONObject busi = null;
+        busi = new JSONObject();
+        busi.put("bId",business.getbId());
+        busi.put("businessTypeCd",business.getBusinessTypeCd());
+        busi.put("remark",business.getRemark());
+        busi.put("datas",business.getData());
         requestMessage.put("business",busi);
         return requestMessage;
     }
@@ -548,18 +778,57 @@
     }
 
     /**
+     * 涓氬姟绯荤粺浜や簰
+     * @return
+     */
+    private static JSONObject getTransactionBusinessBaseJson(OrderDataFlow dataFlow,String businessType){
+        JSONObject notifyMessage = JSONObject.parseObject("{\"orders\":{},\"business\":{}}");
+        JSONObject orders = notifyMessage.getJSONObject("orders");
+        orders.put("transactionId", UUID.randomUUID().toString().replace("-",""));
+        orders.put("dataFlowId",dataFlow.getDataFlowId());
+        orders.put("orderTypeCd",dataFlow.getOrders().getOrderTypeCd());
+        orders.put("requestTime",DateUtil.getyyyyMMddhhmmssDateString());
+        orders.put("businessType",businessType);
+        return notifyMessage;
+    }
+
+    /**
      * 鑾峰彇鍚屾澶勭悊涓氬姟
      * @param dataFlow
      * @return
      */
-    public static List<Business> getSynchronousBusinesses(DataFlow dataFlow){
+    public static List<AppBusiness> getSynchronousBusinesses(DataFlow dataFlow){
         AppService service = null;
         AppRoute route = null;
-        List<Business> syschronousBusinesses = new ArrayList<Business>();
-        for(Business business :dataFlow.getBusinesses()){
+        List<AppBusiness> syschronousBusinesses = new ArrayList<AppBusiness>();
+        for(AppBusiness business :dataFlow.getBusinesses()){
             route = DataFlowFactory.getRoute(dataFlow,business.getServiceCode());
             service = route.getAppService();
             if(CommonConstant.ORDER_INVOKE_METHOD_SYNCHRONOUS.equals(route.getInvokeModel())){
+                business.setSeq(service.getSeq());
+                syschronousBusinesses.add(business);
+            }
+        }
+        if(syschronousBusinesses.size() > 0) {
+            Collections.sort(syschronousBusinesses);
+        }
+
+        return syschronousBusinesses;
+    }
+
+
+    /**
+     * 鑾峰彇鍚屾澶勭悊涓氬姟
+     * @param dataFlow
+     * @return
+     */
+    public static List<com.java110.dto.system.Business> getSynchronousBusinesses(OrderDataFlow dataFlow){
+        AppService service = null;
+        AppRoute route = null;
+        List<com.java110.dto.system.Business> syschronousBusinesses = new ArrayList<com.java110.dto.system.Business>();
+        for(com.java110.dto.system.Business business :dataFlow.getBusinessList()){
+
+            if(CommonConstant.ORDER_INVOKE_METHOD_SYNCHRONOUS.equals(business.getInvokeModel()) || StringUtil.isEmpty(business.getInvokeModel())){
                 business.setSeq(service.getSeq());
                 syschronousBusinesses.add(business);
             }
@@ -577,11 +846,11 @@
      * @param dataFlow
      * @return
      */
-    public static List<Business> getAsynchronousBusinesses(DataFlow dataFlow){
+    public static List<AppBusiness> getAsynchronousBusinesses(DataFlow dataFlow){
         AppService service = null;
         AppRoute route = null;
-        List<Business> syschronousBusinesses = new ArrayList<Business>();
-        for(Business business :dataFlow.getBusinesses()){
+        List<AppBusiness> syschronousBusinesses = new ArrayList<AppBusiness>();
+        for(AppBusiness business :dataFlow.getBusinesses()){
             route = DataFlowFactory.getRoute(dataFlow,business.getServiceCode());
             service = route.getAppService();
             if(CommonConstant.ORDER_INVOKE_METHOD_ASYNCHRONOUS.equals(route.getInvokeModel())){
@@ -593,5 +862,38 @@
         return syschronousBusinesses;
     }
 
+    /**
+     * 鑾峰彇寮傛澶勭悊涓氬姟
+     * @param dataFlow
+     * @return
+     */
+    public static List<com.java110.dto.system.Business> getAsynchronousBusinesses(OrderDataFlow dataFlow){
+
+        List<com.java110.dto.system.Business> asynchronousBusinesses = new ArrayList<com.java110.dto.system.Business>();
+        for(com.java110.dto.system.Business business :dataFlow.getBusinessList()){
+            if(CommonConstant.ORDER_INVOKE_METHOD_ASYNCHRONOUS.equals(business.getInvokeModel())){
+
+                asynchronousBusinesses.add(business);
+            }
+        }
+
+        return asynchronousBusinesses;
+    }
+
+
+    /**
+     * hashmap 杞琈ultiValueMap
+     * @param httpHeaders
+     * @return
+     */
+    public static MultiValueMap<String, String> hashMap2MultiValueMap(Map<String,String> httpHeaders){
+        MultiValueMap<String, String> multiValueMap = new HttpHeaders();
+        for(String key:httpHeaders.keySet()) {
+            multiValueMap.add(key,httpHeaders.get(key));
+        }
+
+        return multiValueMap;
+    }
+
 
 }

--
Gitblit v1.8.0