in src/main/java/com/amazonaws/services/dynamodbv2/streams/connectors/DynamoDBConnectorUtilities.java [48:77]
public static String getTaskName(Region sourceRegion, Region destinationRegion, String suppliedTaskName,
String sourceTableName, String destinationTableName) {
String taskName;
if (!Strings.isNullOrEmpty(suppliedTaskName)) {
taskName = DynamoDBConnectorConstants.SERVICE_PREFIX + suppliedTaskName;
if (taskName.length() > DynamoDBConnectorConstants.DYNAMODB_TABLENAME_LIMIT) {
throw new IllegalArgumentException("Provided taskname is too long!");
}
} else {
taskName = sourceRegion.getName() + sourceTableName + destinationRegion.getName() + destinationTableName;
// hash stack name using MD5
if (DynamoDBConnectorConstants.MD5_DIGEST == null) {
// see if we can generate a taskname without hashing
if (taskName.length() > DynamoDBConnectorConstants.DYNAMODB_TABLENAME_LIMIT) { // must hash the taskname
throw new IllegalArgumentException(
"Generated taskname is too long and cannot be hashed due to improperly initialized MD5 digest object!");
}
} else {
try {
taskName = DynamoDBConnectorConstants.SERVICE_PREFIX
+ new String(Hex.encodeHex(DynamoDBConnectorConstants.MD5_DIGEST.digest(taskName
.getBytes(DynamoDBConnectorConstants.BYTE_ENCODING))));
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException("taskName was not encoded as " + DynamoDBConnectorConstants.BYTE_ENCODING, e);
}
}
}
return taskName;
}