UploaderWebClient extends DataBridgeWebClient { public BusinessObjectDataVersions getBusinessObjectDataVersions(BusinessObjectDataKey businessObjectDataKey) throws URISyntaxException, IOException, JAXBException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException { LOGGER.info("Retrieving business object data versions from the registration server..."); BusinessObjectDataVersions businessObjectDataVersions; try (CloseableHttpClient client = httpClientHelper .createHttpClient(regServerAccessParamsDto.isTrustSelfSignedCertificate(), regServerAccessParamsDto.isDisableHostnameVerification())) { StringBuilder uriPathBuilder = new StringBuilder(300); uriPathBuilder.append(HERD_APP_REST_URI_PREFIX); uriPathBuilder.append("/businessObjectData/namespaces/").append(businessObjectDataKey.getNamespace()); uriPathBuilder.append("/businessObjectDefinitionNames/").append(businessObjectDataKey.getBusinessObjectDefinitionName()); uriPathBuilder.append("/businessObjectFormatUsages/").append(businessObjectDataKey.getBusinessObjectFormatUsage()); uriPathBuilder.append("/businessObjectFormatFileTypes/").append(businessObjectDataKey.getBusinessObjectFormatFileType()); uriPathBuilder.append("/versions"); URIBuilder uriBuilder = new URIBuilder().setScheme(getUriScheme()).setHost(regServerAccessParamsDto.getRegServerHost()) .setPort(regServerAccessParamsDto.getRegServerPort()).setPath(uriPathBuilder.toString()) .setParameter("partitionValue", businessObjectDataKey.getPartitionValue()); if (businessObjectDataKey.getSubPartitionValues() != null) { uriBuilder.setParameter("subPartitionValues", herdStringHelper.join(businessObjectDataKey.getSubPartitionValues(), "|", "\\")); } if (businessObjectDataKey.getBusinessObjectFormatVersion() != null) { uriBuilder.setParameter("businessObjectFormatVersion", businessObjectDataKey.getBusinessObjectFormatVersion().toString()); } if (businessObjectDataKey.getBusinessObjectDataVersion() != null) { uriBuilder.setParameter("businessObjectDataVersion", businessObjectDataKey.getBusinessObjectDataVersion().toString()); } HttpGet httpGet = new HttpGet(uriBuilder.build()); httpGet.addHeader("Accepts", DEFAULT_ACCEPT); if (regServerAccessParamsDto.isUseSsl()) { httpGet.addHeader(getAuthorizationHeader()); } LOGGER.info(String.format(" HTTP GET URI: %s", httpGet.getURI().toString())); businessObjectDataVersions = getBusinessObjectDataVersions(httpClientOperations.execute(client, httpGet)); } LOGGER.info(String.format("Successfully retrieved %d already registered version(s) for the business object data. businessObjectDataKey=%s", businessObjectDataVersions.getBusinessObjectDataVersions().size(), jsonHelper.objectToJson(businessObjectDataKey))); return businessObjectDataVersions; }  BusinessObjectDataUploadCredential getBusinessObjectDataUploadCredential(DataBridgeBaseManifestDto manifest, String storageName,
        Integer businessObjectDataVersion, Boolean createNewVersion); BusinessObjectDataVersions getBusinessObjectDataVersions(BusinessObjectDataKey businessObjectDataKey); void updateBusinessObjectDataStatusIgnoreException(BusinessObjectDataKey businessObjectDataKey, String businessObjectDataStatus);  }
@Test public void testGetBusinessObjectDataVersions() throws Exception { testGetBusinessObjectDataVersions(null, null, null, false); }