JDBCUtil { public static Map<String, String> getAnnotations(@NotNull String url, @NotNull Properties info) { Preconditions.checkNotNull(url); Preconditions.checkNotNull(info); Map<String, String> combinedProperties = getCombinedConnectionProperties(url, info); Map<String, String> result = newHashMapWithExpectedSize(combinedProperties.size()); for (Map.Entry<String, String> prop : combinedProperties.entrySet()) { if (prop.getKey().startsWith(ANNOTATION_ATTRIB_PREFIX) && prop.getKey().length() > ANNOTATION_ATTRIB_PREFIX.length()) { result.put(prop.getKey().substring(ANNOTATION_ATTRIB_PREFIX.length()), prop.getValue()); } } return result; } private  JDBCUtil(); static String findProperty(String url, Properties info, String propName); static String removeProperty(String url, String propName); static Map<String, String> getAnnotations(@NotNull String url, @NotNull Properties info); static Long getCurrentSCN(String url, Properties info); static int getMutateBatchSize(String url, Properties info, ReadOnlyProps props); static @Nullable PName getTenantId(String url, Properties info); static boolean getAutoCommit(String url, Properties info, boolean defaultValue);  }
@Test public void testGetCustomTracingAnnotationsWithNone() { String url = "localhost;TenantId=abc;"; Map<String, String> customAnnotations = JDBCUtil.getAnnotations(url, new Properties()); assertTrue(customAnnotations.isEmpty()); }
@Test public void testGetCustomTracingAnnotationInBothPropertiesAndURL() { String annotKey1 = "key1"; String annotVal1 = "val1"; String annotKey2 = "key2"; String annotVal2 = "val2"; String annotKey3 = "key3"; String annotVal3 = "val3"; String url= "localhost;" + ANNOTATION_ATTRIB_PREFIX + annotKey1 + '=' + annotVal1; Properties prop = new Properties(); prop.put(ANNOTATION_ATTRIB_PREFIX + annotKey2, annotVal2); prop.put(ANNOTATION_ATTRIB_PREFIX + annotKey3, annotVal3); Map<String, String> customAnnotations = JDBCUtil.getAnnotations(url, prop); assertEquals(3, customAnnotations.size()); assertEquals(annotVal1, customAnnotations.get(annotKey1)); assertEquals(annotVal2, customAnnotations.get(annotKey2)); assertEquals(annotVal3, customAnnotations.get(annotKey3)); }