@Override
public void setConfiguration(final Path file, final LifecycleConfiguration configuration) throws BackgroundException {
final Path container = containerService.getContainer(file);
try {
if(configuration.getTransition() != null || configuration.getExpiration() != null) {
final LifecycleConfig config = new LifecycleConfig();
final LifecycleConfig.Rule rule = config.newRule(
String.format("%s-%s", PreferencesFactory.get().getProperty("application.name"), new AlphanumericRandomStringService().random()), StringUtils.EMPTY, true);
if(configuration.getTransition() != null) {
rule.newTransition().setDays(configuration.getTransition());
}
if(configuration.getExpiration() != null) {
rule.newExpiration().setDays(configuration.getExpiration());
}
session.getClient().setLifecycleConfig(container.getName(), config);
}
else {
session.getClient().deleteLifecycleConfig(container.getName());
}
}
catch(ServiceException e) {
throw new S3ExceptionMappingService().map("Failure to write attributes of {0}", e, container);
}
}