package org.activityinfo.server.util.blob;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import org.activityinfo.server.DeploymentEnvironment;
import org.activityinfo.service.DeploymentConfiguration;
import java.io.File;
public class BlobServiceModule extends AbstractModule {
private static final String BLOB_ROOT_KEY = "blob.root";
@Override
protected void configure() {
}
@Provides @Singleton
public BlobService provideBlobService(DeploymentConfiguration config) {
if (DeploymentEnvironment.isAppEngine()) {
return new AppEngineBlobService();
} else {
String defaultRoot = System.getProperty("user.home") + File.separator + "activityinfo.blob";
File blobRoot = new File(config.getProperty(BLOB_ROOT_KEY, defaultRoot));
if (blobRoot.exists() && !blobRoot.isDirectory()) {
throw new RuntimeException("blob.root must be a directory");
}
return new FsBlobService(blobRoot);
}
}
}