Refactored FileUtils.

Removed methods that are no longer needed for Java 6, moved the remaining method into the utils directory.
This commit is contained in:
akwizgran
2015-12-10 15:58:52 +00:00
parent 947da886bf
commit 912ba394c5
19 changed files with 274 additions and 366 deletions

View File

@@ -1,6 +1,15 @@
package org.briarproject.db;
import static java.util.concurrent.TimeUnit.SECONDS;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import org.briarproject.api.db.DatabaseComponent;
import org.briarproject.api.db.DatabaseConfig;
import org.briarproject.api.db.DatabaseExecutor;
import org.briarproject.api.event.EventBus;
import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.lifecycle.ShutdownManager;
import org.briarproject.system.SystemClock;
import java.sql.Connection;
import java.util.concurrent.BlockingQueue;
@@ -12,17 +21,7 @@ import java.util.concurrent.ThreadPoolExecutor;
import javax.inject.Singleton;
import org.briarproject.api.db.DatabaseComponent;
import org.briarproject.api.db.DatabaseConfig;
import org.briarproject.api.db.DatabaseExecutor;
import org.briarproject.api.event.EventBus;
import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.lifecycle.ShutdownManager;
import org.briarproject.api.system.FileUtils;
import org.briarproject.system.SystemClock;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import static java.util.concurrent.TimeUnit.SECONDS;
public class DatabaseModule extends AbstractModule {
@@ -45,9 +44,8 @@ public class DatabaseModule extends AbstractModule {
}
@Provides
Database<Connection> getDatabase(DatabaseConfig config,
FileUtils fileUtils) {
return new H2Database(config, fileUtils, new SystemClock());
Database<Connection> getDatabase(DatabaseConfig config) {
return new H2Database(config, new SystemClock());
}
@Provides @Singleton

View File

@@ -1,5 +1,10 @@
package org.briarproject.db;
import org.briarproject.api.db.DatabaseConfig;
import org.briarproject.api.db.DbException;
import org.briarproject.api.system.Clock;
import org.briarproject.util.StringUtils;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
@@ -10,12 +15,6 @@ import java.util.Properties;
import javax.inject.Inject;
import org.briarproject.api.db.DatabaseConfig;
import org.briarproject.api.db.DbException;
import org.briarproject.api.system.Clock;
import org.briarproject.api.system.FileUtils;
import org.briarproject.util.StringUtils;
/** Contains all the H2-specific code for the database. */
class H2Database extends JdbcDatabase {
@@ -25,14 +24,12 @@ class H2Database extends JdbcDatabase {
private static final String SECRET_TYPE = "BINARY(32)";
private final DatabaseConfig config;
private final FileUtils fileUtils;
private final String url;
@Inject
H2Database(DatabaseConfig config, FileUtils fileUtils, Clock clock) {
H2Database(DatabaseConfig config, Clock clock) {
super(HASH_TYPE, BINARY_TYPE, COUNTER_TYPE, SECRET_TYPE, clock);
this.config = config;
this.fileUtils = fileUtils;
String path = new File(config.getDatabaseDirectory(), "db").getAbsolutePath();
// FIXME: Remove WRITE_DELAY=0 after implementing BTPv2?
url = "jdbc:h2:split:" + path + ";CIPHER=AES;MULTI_THREADED=1"
@@ -58,15 +55,10 @@ class H2Database extends JdbcDatabase {
public long getFreeSpace() throws DbException {
File dir = config.getDatabaseDirectory();
long maxSize = config.getMaxSize();
try {
long free = fileUtils.getFreeSpace(dir);
long used = getDiskSpace(dir);
long quota = maxSize - used;
long min = Math.min(free, quota);
return min;
} catch (IOException e) {
throw new DbException(e);
}
long free = dir.getFreeSpace();
long used = getDiskSpace(dir);
long quota = maxSize - used;
return Math.min(free, quota);
}
private long getDiskSpace(File f) {