public static Map<String, String> parseMap(String mapStr, String keyValueSeparator, String elementSeparator) {
        Map<String, String> map = new HashMap<>();

        if (!mapStr.isEmpty()) {
            String[] attrvals = mapStr.split(elementSeparator);
            for (String attrval : attrvals) {
                String[] array = attrval.split(keyValueSeparator, 2);
                map.put(array[0], array[1]);
            }
        }
        return map;
    }
@Test
    public void parseMapTest() {
        Map<String, String> map1 = Utils.parseMap("k1=v1,k2=v2,k3=v3", "=", ",");
        assertEquals(3, map1.size());
        assertEquals("v1", map1.get("k1"));
        assertEquals("v2", map1.get("k2"));
        assertEquals("v3", map1.get("k3"));

        Map<String, String> map3 = Utils.parseMap("k4=v4,k5=v5=vv5=vvv5", "=", ",");
        assertEquals(2, map3.size());
        assertEquals("v4", map3.get("k4"));
        assertEquals("v5=vv5=vvv5", map3.get("k5"));
    }