From 4fe1767665733394131391080c5c101738a6651c Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 03 Mar 2015 23:18:53 +0000
Subject: [PATCH] Minor pluggable backend code cleanup:
---
opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java | 72 +++++++++++++++++++++--------------
1 files changed, 43 insertions(+), 29 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
index e8be95f..3789dc0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/persistit/PersistItStorage.java
@@ -51,7 +51,6 @@
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.PersistitBackendCfg;
-import org.opends.server.admin.std.server.PluggableBackendCfg;
import org.opends.server.api.AlertGenerator;
import org.opends.server.api.DiskSpaceMonitorHandler;
import org.opends.server.backends.pluggable.spi.Cursor;
@@ -515,6 +514,36 @@
private PersistitBackendCfg config;
private DiskSpaceMonitor diskMonitor;
+ /**
+ * Creates a new persistit storage with the provided configuration.
+ *
+ * @param cfg
+ * The configuration.
+ */
+ // FIXME: should be package private once importer is decoupled.
+ public PersistItStorage(final PersistitBackendCfg cfg)
+ {
+ backendDirectory = new File(getFileForPath(cfg.getDBDirectory()), cfg.getBackendId());
+ config = cfg;
+ dbCfg = new Configuration();
+ dbCfg.setLogFile(new File(backendDirectory, VOLUME_NAME + ".log").getPath());
+ dbCfg.setJournalPath(new File(backendDirectory, VOLUME_NAME + "_journal").getPath());
+ dbCfg.setVolumeList(asList(new VolumeSpecification(new File(backendDirectory, VOLUME_NAME).getPath(), null,
+ BUFFER_SIZE, 4096, Long.MAX_VALUE / BUFFER_SIZE, 2048, true, false, false)));
+ final BufferPoolConfiguration bufferPoolCfg = getBufferPoolCfg();
+ bufferPoolCfg.setMaximumCount(Integer.MAX_VALUE);
+ if (cfg.getDBCacheSize() > 0)
+ {
+ bufferPoolCfg.setMaximumMemory(cfg.getDBCacheSize());
+ }
+ else
+ {
+ bufferPoolCfg.setFraction(cfg.getDBCachePercent() / 100.0f);
+ }
+ dbCfg.setCommitPolicy(cfg.isDBTxnNoSync() ? SOFT : GROUP);
+ cfg.addPersistitChangeListener(this);
+ }
+
/** {@inheritDoc} */
@Override
public void close()
@@ -543,33 +572,6 @@
// nothing to do, in persistit you close the volume itself
}
- /** {@inheritDoc} */
- @Override
- public void initialize(final PluggableBackendCfg configuration)
- {
- final PersistitBackendCfg cfg = (PersistitBackendCfg) configuration;
- backendDirectory = new File(getFileForPath(cfg.getDBDirectory()), cfg.getBackendId());
- config = cfg;
- dbCfg = new Configuration();
- dbCfg.setLogFile(new File(backendDirectory, VOLUME_NAME + ".log").getPath());
- dbCfg.setJournalPath(new File(backendDirectory, VOLUME_NAME + "_journal").getPath());
- dbCfg.setVolumeList(asList(new VolumeSpecification(new File(
- backendDirectory, VOLUME_NAME).getPath(), null, BUFFER_SIZE, 4096,
- Long.MAX_VALUE / BUFFER_SIZE, 2048, true, false, false)));
- final BufferPoolConfiguration bufferPoolCfg = getBufferPoolCfg();
- bufferPoolCfg.setMaximumCount(Integer.MAX_VALUE);
- if (cfg.getDBCacheSize() > 0)
- {
- bufferPoolCfg.setMaximumMemory(cfg.getDBCacheSize());
- }
- else
- {
- bufferPoolCfg.setFraction(cfg.getDBCachePercent() / 100.0f);
- }
- dbCfg.setCommitPolicy(cfg.isDBTxnNoSync() ? SOFT : GROUP);
- cfg.addPersistitChangeListener(this);
- }
-
private BufferPoolConfiguration getBufferPoolCfg()
{
return dbCfg.getBufferPoolMap().get(BUFFER_SIZE);
@@ -721,6 +723,19 @@
}
}
+ @Override
+ public boolean supportsBackupAndRestore()
+ {
+ return true;
+ }
+
+ @Override
+ public File getDirectory()
+ {
+ File parentDir = getFileForPath(config.getDBDirectory());
+ return new File(parentDir, config.getBackendId());
+ }
+
/** {@inheritDoc} */
@Override
public FilenameFilter getFilesToBackupFilter()
@@ -815,7 +830,6 @@
*
* @param cfg a (possibly new) backend configuration
* @param ccr the current list of change results
- * @return true if permissions are valid
* @throws forwards a file exception
*/
private void checkDBDirPermissions(PersistitBackendCfg cfg, ConfigChangeResult ccr)
--
Gitblit v1.10.0