/** * Returns the latest version of the business object data registered. Returns null if no data is registered. * * @param businessObjectDataInvalidateUnregisteredRequest request containing business object data key * * @return {@link BusinessObjectDataEntity} or null */ private BusinessObjectDataEntity getLatestBusinessObjectDataEntity( BusinessObjectDataInvalidateUnregisteredRequest businessObjectDataInvalidateUnregisteredRequest) { BusinessObjectDataKey businessObjectDataKey = getBusinessObjectDataKey(businessObjectDataInvalidateUnregisteredRequest); businessObjectDataKey.setBusinessObjectDataVersion(null); return businessObjectDataDao.getBusinessObjectDataByAltKey(businessObjectDataKey); }
/** * Returns the latest version of the business object data registered. Returns null if no data is registered. * * @param businessObjectDataInvalidateUnregisteredRequest request containing business object data key * * @return {@link BusinessObjectDataEntity} or null */ private BusinessObjectDataEntity getLatestBusinessObjectDataEntity( BusinessObjectDataInvalidateUnregisteredRequest businessObjectDataInvalidateUnregisteredRequest) { BusinessObjectDataKey businessObjectDataKey = getBusinessObjectDataKey(businessObjectDataInvalidateUnregisteredRequest); businessObjectDataKey.setBusinessObjectDataVersion(null); return businessObjectDataDao.getBusinessObjectDataByAltKey(businessObjectDataKey); }
@Test public void testCompareBusinessObjectDataVersion() throws Exception { BusinessObjectDataKey businessObjectDataKey1 = new BusinessObjectDataKey(); BusinessObjectDataKey businessObjectDataKey2 = new BusinessObjectDataKey(); // "a" = "b" businessObjectDataKey1.setBusinessObjectDataVersion(0); businessObjectDataKey2.setBusinessObjectDataVersion(0); assertEquals(0, comparator.compare(businessObjectDataKey1, businessObjectDataKey2)); // "a" < "b" businessObjectDataKey1.setBusinessObjectDataVersion(0); businessObjectDataKey2.setBusinessObjectDataVersion(1); assertEquals(-1, comparator.compare(businessObjectDataKey1, businessObjectDataKey2)); // "b" > "a" assertEquals(1, comparator.compare(businessObjectDataKey2, businessObjectDataKey1)); }
/** * Returns a cloned version of the specified business object data key where all fields are made lowercase. * * @param businessObjectDataKey the business object data. * * @return the cloned business object data. */ private BusinessObjectDataKey cloneToLowerCase(BusinessObjectDataKey businessObjectDataKey) { BusinessObjectDataKey businessObjectDataKeyClone = new BusinessObjectDataKey(); businessObjectDataKeyClone.setNamespace(businessObjectDataKey.getNamespace().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectDefinitionName(businessObjectDataKey.getBusinessObjectDefinitionName().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatUsage(businessObjectDataKey.getBusinessObjectFormatUsage().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatFileType(businessObjectDataKey.getBusinessObjectFormatFileType().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatVersion(businessObjectDataKey.getBusinessObjectFormatVersion()); businessObjectDataKeyClone.setPartitionValue(businessObjectDataKey.getPartitionValue()); businessObjectDataKeyClone.setBusinessObjectDataVersion(businessObjectDataKey.getBusinessObjectDataVersion()); businessObjectDataKeyClone.setSubPartitionValues(businessObjectDataKey.getSubPartitionValues()); return businessObjectDataKeyClone; }
/** * Returns a cloned version of the specified business object data key where all fields are made lowercase. * * @param businessObjectDataKey the business object data. * * @return the cloned business object data. */ private BusinessObjectDataKey cloneToLowerCase(BusinessObjectDataKey businessObjectDataKey) { BusinessObjectDataKey businessObjectDataKeyClone = new BusinessObjectDataKey(); businessObjectDataKeyClone.setNamespace(businessObjectDataKey.getNamespace().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectDefinitionName(businessObjectDataKey.getBusinessObjectDefinitionName().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatUsage(businessObjectDataKey.getBusinessObjectFormatUsage().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatFileType(businessObjectDataKey.getBusinessObjectFormatFileType().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatVersion(businessObjectDataKey.getBusinessObjectFormatVersion()); businessObjectDataKeyClone.setPartitionValue(businessObjectDataKey.getPartitionValue()); businessObjectDataKeyClone.setBusinessObjectDataVersion(businessObjectDataKey.getBusinessObjectDataVersion()); businessObjectDataKeyClone.setSubPartitionValues(businessObjectDataKey.getSubPartitionValues()); return businessObjectDataKeyClone; }
@Test public void testCreateBusinessObjectDataParentMissingBusinessObjectDataVersion() { // This will create a business object data create request with parents. BusinessObjectDataCreateRequest businessObjectDataCreateRequest = businessObjectDataServiceTestHelper.getNewBusinessObjectDataCreateRequest(true); // Remove the business object data version required field. List<BusinessObjectDataKey> businessObjectDataKeys = businessObjectDataCreateRequest.getBusinessObjectDataParents(); businessObjectDataKeys.get(0).setBusinessObjectDataVersion(null); // Try to create a business object data which should fail since one of the required attributes is missing. try { businessObjectDataService.createBusinessObjectData(businessObjectDataCreateRequest); fail("Should throw an IllegalArgumentException when business object data version is not specified for a business object data parent."); } catch (IllegalArgumentException e) { assertEquals("A business object data version must be specified.", e.getMessage()); } }
businessObjectDataKey1.setBusinessObjectFormatVersion(0); businessObjectDataKey1.setPartitionValue("a"); businessObjectDataKey1.setBusinessObjectDataVersion(0); businessObjectDataKey2.setBusinessObjectFormatVersion(0); businessObjectDataKey2.setPartitionValue("a"); businessObjectDataKey2.setBusinessObjectDataVersion(0); businessObjectDataKey1.setBusinessObjectDataVersion(0); businessObjectDataKey2.setBusinessObjectDataVersion(1); assertEquals(-1, comparator.compare(businessObjectDataKey1, businessObjectDataKey2));
/** * Creates an object in S3 with the prefix constructed from the given parameters. The object's full path will be {prefix}/{UUID} * * @param businessObjectFormatEntity business object format * @param request request with partition values and storage * @param businessObjectDataVersion business object data version to put */ public void createS3Object(BusinessObjectFormatEntity businessObjectFormatEntity, BusinessObjectDataInvalidateUnregisteredRequest request, int businessObjectDataVersion) { StorageEntity storageEntity = storageDao.getStorageByName(request.getStorageName()); String s3BucketName = storageHelper.getS3BucketAccessParams(storageEntity).getS3BucketName(); BusinessObjectDataKey businessObjectDataKey = getBusinessObjectDataKey(request); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataVersion); String s3KeyPrefix = s3KeyPrefixHelper .buildS3KeyPrefix(AbstractServiceTest.S3_KEY_PREFIX_VELOCITY_TEMPLATE, businessObjectFormatEntity, businessObjectDataKey, storageEntity.getName()); String s3ObjectKey = s3KeyPrefix + "/test"; PutObjectRequest putObjectRequest = new PutObjectRequest(s3BucketName, s3ObjectKey, new ByteArrayInputStream(new byte[1]), new ObjectMetadata()); s3Operations.putObject(putObjectRequest, null); }
/** * Returns a business object data key for the business object data. * * @param businessObjectData the business object data * * @return the business object data key for the business object data */ public BusinessObjectDataKey getBusinessObjectDataKey(BusinessObjectData businessObjectData) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectData.getNamespace()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectData.getBusinessObjectDefinitionName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectData.getBusinessObjectFormatUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectData.getBusinessObjectFormatFileType()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectData.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectData.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(businessObjectData.getSubPartitionValues()); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectData.getVersion()); return businessObjectDataKey; }
/** * Returns a business object data key for the business object data. * * @param businessObjectData the business object data * * @return the business object data key for the business object data */ public BusinessObjectDataKey getBusinessObjectDataKey(BusinessObjectData businessObjectData) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectData.getNamespace()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectData.getBusinessObjectDefinitionName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectData.getBusinessObjectFormatUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectData.getBusinessObjectFormatFileType()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectData.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectData.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(businessObjectData.getSubPartitionValues()); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectData.getVersion()); return businessObjectDataKey; }
/** * Creates a business object data key from a business object data DTO. * * @param businessObjectData the business object data DTO. * * @return the business object data key. */ public BusinessObjectDataKey createBusinessObjectDataKey(BusinessObjectData businessObjectData) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectData.getNamespace()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectData.getBusinessObjectDefinitionName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectData.getBusinessObjectFormatUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectData.getBusinessObjectFormatFileType()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectData.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectData.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(businessObjectData.getSubPartitionValues()); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectData.getVersion()); return businessObjectDataKey; }
/** * Creates a business object data key from a business object data DTO. * * @param businessObjectData the business object data DTO. * * @return the business object data key. */ public BusinessObjectDataKey createBusinessObjectDataKey(BusinessObjectData businessObjectData) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectData.getNamespace()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectData.getBusinessObjectDefinitionName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectData.getBusinessObjectFormatUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectData.getBusinessObjectFormatFileType()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectData.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectData.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(businessObjectData.getSubPartitionValues()); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectData.getVersion()); return businessObjectDataKey; }
@Test public void testBusinessObjectDataKeyToString() { // Create test business object data key. BusinessObjectDataKey testBusinessObjectDataKey = new BusinessObjectDataKey(); testBusinessObjectDataKey.setNamespace(NAMESPACE); testBusinessObjectDataKey.setBusinessObjectDefinitionName(BDEF_NAME); testBusinessObjectDataKey.setBusinessObjectFormatUsage(FORMAT_USAGE_CODE); testBusinessObjectDataKey.setBusinessObjectFormatFileType(FORMAT_FILE_TYPE_CODE); testBusinessObjectDataKey.setBusinessObjectFormatVersion(FORMAT_VERSION); testBusinessObjectDataKey.setPartitionValue(PARTITION_VALUE); testBusinessObjectDataKey.setSubPartitionValues(SUBPARTITION_VALUES); testBusinessObjectDataKey.setBusinessObjectDataVersion(DATA_VERSION); // Create the expected test output. String expectedOutput = String.format("namespace: \"%s\", businessObjectDefinitionName: \"%s\", businessObjectFormatUsage: \"%s\", " + "businessObjectFormatFileType: \"%s\", businessObjectFormatVersion: %d, businessObjectDataPartitionValue: \"%s\", " + "businessObjectDataSubPartitionValues: \"%s\", businessObjectDataVersion: %d", NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, PARTITION_VALUE, StringUtils.join(SUBPARTITION_VALUES, ","), DATA_VERSION); assertEquals(expectedOutput, businessObjectDataHelper.businessObjectDataKeyToString(testBusinessObjectDataKey)); assertEquals(expectedOutput, businessObjectDataHelper .businessObjectDataKeyToString(NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, PARTITION_VALUE, SUBPARTITION_VALUES, DATA_VERSION)); }
/** * Calls getBusinessObjectDataVersions() method and makes assertions. * * @param subPartitionValues the list of sub-partition values * @param businessObjectFormatVersion the business object format version * @param businessObjectDataVersion the business object data version * @param useSsl specifies whether to use SSL or not * * @throws JAXBException if a JAXB error was encountered * @throws IOException if an I/O error was encountered * @throws URISyntaxException if a URI syntax error was encountered * @throws KeyStoreException if a key store exception occurs * @throws NoSuchAlgorithmException if a no such algorithm exception occurs * @throws KeyManagementException if key management exception */ private void testGetBusinessObjectDataVersions(List<String> subPartitionValues, Integer businessObjectFormatVersion, Integer businessObjectDataVersion, boolean useSsl) throws IOException, JAXBException, URISyntaxException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException { uploaderWebClient.getRegServerAccessParamsDto().setUseSsl(useSsl); BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectFormatVersion); businessObjectDataKey.setSubPartitionValues(subPartitionValues); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataVersion); BusinessObjectDataVersions businessObjectDataVersions = uploaderWebClient.getBusinessObjectDataVersions(businessObjectDataKey); assertNotNull("businessObjectDataVersions", businessObjectDataVersions); } }
businessObjectDataKey.setPartitionValue(partitionValue); businessObjectDataKey.setSubPartitionValues(subPartitionValues); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataVersion);
businessObjectDataKey.setPartitionValue(partitionValue); businessObjectDataKey.setSubPartitionValues(subPartitionValues); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataVersion);
/** * Returns a business object data key for the business object data entity. * * @param businessObjectDataEntity the business object data entity * * @return the business object data key for the business object data entity */ public BusinessObjectDataKey getBusinessObjectDataKey(BusinessObjectDataEntity businessObjectDataEntity) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectDataEntity.getBusinessObjectFormat(); businessObjectDataKey.setNamespace(businessObjectFormatEntity.getBusinessObjectDefinition().getNamespace().getCode()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectFormatEntity.getBusinessObjectDefinition().getName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectFormatEntity.getUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectFormatEntity.getFileType().getCode()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectFormatEntity.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectDataEntity.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(getSubPartitionValues(businessObjectDataEntity)); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataEntity.getVersion()); return businessObjectDataKey; }
/** * Returns a business object data key for the business object data entity. * * @param businessObjectDataEntity the business object data entity * * @return the business object data key for the business object data entity */ public BusinessObjectDataKey getBusinessObjectDataKey(BusinessObjectDataEntity businessObjectDataEntity) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectDataEntity.getBusinessObjectFormat(); businessObjectDataKey.setNamespace(businessObjectFormatEntity.getBusinessObjectDefinition().getNamespace().getCode()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectFormatEntity.getBusinessObjectDefinition().getName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectFormatEntity.getUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectFormatEntity.getFileType().getCode()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectFormatEntity.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectDataEntity.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(getSubPartitionValues(businessObjectDataEntity)); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataEntity.getVersion()); return businessObjectDataKey; }
/** * Creates a business object data key from a business object data entity. * * @param businessObjectDataEntity the business object data entity. * * @return the business object data key. */ public BusinessObjectDataKey createBusinessObjectDataKeyFromEntity(BusinessObjectDataEntity businessObjectDataEntity) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectDefinition().getNamespace().getCode()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectDefinition().getName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectDataEntity.getBusinessObjectFormat().getUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectDataEntity.getBusinessObjectFormat().getFileType().getCode()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectDataEntity.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(getSubPartitionValues(businessObjectDataEntity)); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataEntity.getVersion()); return businessObjectDataKey; }
/** * Creates a business object data key from a business object data entity. * * @param businessObjectDataEntity the business object data entity. * * @return the business object data key. */ public BusinessObjectDataKey createBusinessObjectDataKeyFromEntity(BusinessObjectDataEntity businessObjectDataEntity) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectDefinition().getNamespace().getCode()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectDefinition().getName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectDataEntity.getBusinessObjectFormat().getUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectDataEntity.getBusinessObjectFormat().getFileType().getCode()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectDataEntity.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(getSubPartitionValues(businessObjectDataEntity)); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataEntity.getVersion()); return businessObjectDataKey; }