diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCachingDataStoreStatsTest.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCachingDataStoreStatsTest.java index 802133e..0ec9c88 100644 --- a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCachingDataStoreStatsTest.java +++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCachingDataStoreStatsTest.java @@ -38,7 +38,7 @@ import org.osgi.framework.ServiceRegistration; import static com.google.common.collect.Maps.newHashMap; import static org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.CUSTOM_BLOB_STORE; -import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DIRECTORY; +import static org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.DIRECTORY; import static org.apache.sling.testing.mock.osgi.MockOsgi.deactivate; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentS3DataStoreStatsTest.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentS3DataStoreStatsTest.java index 05fb1e2..55b0812 100644 --- a/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentS3DataStoreStatsTest.java +++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentS3DataStoreStatsTest.java @@ -38,7 +38,7 @@ import org.osgi.framework.ServiceRegistration; import static com.google.common.collect.Maps.newHashMap; import static org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.CUSTOM_BLOB_STORE; -import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DIRECTORY; +import static org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.DIRECTORY; import static org.apache.sling.testing.mock.osgi.MockOsgi.deactivate; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCachingDataStoreStatsTest.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCachingDataStoreStatsTest.java index de061dc..3d08581 100644 --- a/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCachingDataStoreStatsTest.java +++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCachingDataStoreStatsTest.java @@ -39,7 +39,7 @@ import org.osgi.framework.ServiceRegistration; import static com.google.common.collect.Maps.newHashMap; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.CUSTOM_BLOB_STORE; -import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DIRECTORY; +import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.REPOSITORY_HOME_DIRECTORY; import static org.apache.sling.testing.mock.osgi.MockOsgi.deactivate; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -110,7 +110,7 @@ public class SegmentCachingDataStoreStatsTest { Map properties = newHashMap(); properties.put(CUSTOM_BLOB_STORE, customBlobStore); - properties.put(DIRECTORY, folder.getRoot().getAbsolutePath()); + properties.put(REPOSITORY_HOME_DIRECTORY, folder.getRoot().getAbsolutePath()); segmentNodeStoreService = context.registerInjectActivateService(new SegmentNodeStoreService(), properties); diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentS3DataStoreStatsTest.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentS3DataStoreStatsTest.java index 0d802ae..a6bb1f5 100644 --- a/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentS3DataStoreStatsTest.java +++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/segment/SegmentS3DataStoreStatsTest.java @@ -20,7 +20,7 @@ package org.apache.jackrabbit.oak.segment; import static com.google.common.collect.Maps.newHashMap; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.CUSTOM_BLOB_STORE; -import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DIRECTORY; +import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.REPOSITORY_HOME_DIRECTORY; import static org.apache.sling.testing.mock.osgi.MockOsgi.deactivate; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -108,7 +108,7 @@ public class SegmentS3DataStoreStatsTest { Map properties = newHashMap(); properties.put(CUSTOM_BLOB_STORE, customBlobStore); - properties.put(DIRECTORY, folder.getRoot().getAbsolutePath()); + properties.put(REPOSITORY_HOME_DIRECTORY, folder.getRoot().getAbsolutePath()); segmentNodeStoreService = context.registerInjectActivateService(new SegmentNodeStoreService(), properties); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java index 7e4b893..1dc5c10 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java @@ -38,7 +38,7 @@ import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.COMPACTI import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.CUSTOM_BLOB_STORE; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DEFAULT_BLOB_GC_MAX_AGE; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DEFAULT_BLOB_SNAPSHOT_INTERVAL; -import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.DIRECTORY; +import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.REPOSITORY_HOME_DIRECTORY; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.GC_PROGRESS_LOG; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.MEMORY_THRESHOLD; import static org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.MODE; @@ -155,11 +155,12 @@ public class SegmentNodeStoreService { private static final Logger log = LoggerFactory.getLogger(SegmentNodeStoreService.class); @Property( - label = "Directory", - description = "Directory for storing the tar files. Defaults to the value of the framework " + - "property 'repository.home' or to 'repository' if that is neither specified." + label = "Repository Home Directory", + description = "Directory for storing (in separate sub-directories) tar files, cache data, indices, etc. " + + "Defaults to the value of the framework property 'repository.home' or to 'repository' " + + "if that is neither specified." ) - public static final String DIRECTORY = "repository.home"; + public static final String REPOSITORY_HOME_DIRECTORY = "repository.home"; @Property( label = "Mode", @@ -438,7 +439,7 @@ public class SegmentNodeStoreService { .withGCNodeWriteMonitor(configuration.getGCProcessLog()); // Build the FileStore - FileStoreBuilder builder = fileStoreBuilder(configuration.getDirectory()) + FileStoreBuilder builder = fileStoreBuilder(configuration.getSegmentDirectory()) .withSegmentCacheSize(configuration.getSegmentCacheSize()) .withStringCacheSize(configuration.getStringCacheSize()) .withTemplateCacheSize(configuration.getTemplateCacheSize()) @@ -632,7 +633,7 @@ public class SegmentNodeStoreService { if (trackingStore.getTracker() != null) { trackingStore.getTracker().close(); } - trackingStore.addTracker(new BlobIdTracker(configuration.getRootDirectory(), getOrCreateId(segmentNodeStore), configuration.getBlobSnapshotInterval(), sharedDataStore)); + trackingStore.addTracker(new BlobIdTracker(configuration.getRepositoryHome(), getOrCreateId(segmentNodeStore), configuration.getBlobSnapshotInterval(), sharedDataStore)); } } @@ -793,24 +794,42 @@ class Configuration { return lookupConfigurationThenFramework(context, name); } - String getRootDirectory() { - String root = property(DIRECTORY); + /** + * Chooses repository home directory name based on repository.home + * property, defaulting to repository if property is not set. + * + * @return repository home directory name. + */ + String getRepositoryHome() { + String root = property(REPOSITORY_HOME_DIRECTORY); if (isNullOrEmpty(root)) { return "repository"; } return root; } - File getDirectory() { - return new File(getBaseDirectory(), appendRole("segmentstore")); + /** + * Creates a new sub-directory relative to {@link #getRepositoryHome()} for + * storing segments. + * + * @return directory for storing segments. + */ + File getSegmentDirectory() { + return new File(getRepositoryHome(), appendRole("segmentstore")); } + /** + * Creates a new sub-directory relative to {@link #getRepositoryHome()} for + * storing repository backups. + * + * @return directory for storing repository backups. + */ File getBackupDirectory() { String backupDirectory = property(BACKUP_DIRECTORY); if (backupDirectory != null) { return new File(backupDirectory); } - return new File(getBaseDirectory(), appendRole("segmentstore-backup")); + return new File(getRepositoryHome(), appendRole("segmentstore-backup")); } int getSegmentCacheSize() { @@ -917,14 +936,6 @@ class Configuration { } } - private File getBaseDirectory() { - String directory = property(DIRECTORY); - if (directory != null) { - return new File(directory); - } - return new File("tarmk"); - } - private String getCacheSize(String propertyName) { String cacheSize = property(propertyName); if (cacheSize != null) { diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBlobTrackerRegistrationTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBlobTrackerRegistrationTest.java index d8d3238..742350a 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBlobTrackerRegistrationTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBlobTrackerRegistrationTest.java @@ -40,7 +40,7 @@ public class SegmentBlobTrackerRegistrationTest extends AbstractBlobTrackerRegis protected void registerNodeStoreService() { Map properties = newHashMap(); properties.put(SegmentNodeStoreService.CUSTOM_BLOB_STORE, true); - properties.put(SegmentNodeStoreService.DIRECTORY, repoHome); + properties.put(SegmentNodeStoreService.REPOSITORY_HOME_DIRECTORY, repoHome); service = context.registerInjectActivateService(new SegmentNodeStoreService(), properties); } diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactoryTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactoryTest.java index 4ab50be..82d3303 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactoryTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactoryTest.java @@ -44,7 +44,7 @@ public class SegmentNodeStoreFactoryTest extends SegmentNodeStoreServiceTest { properties.put(SegmentNodeStoreFactory.ROLE, "some-role"); properties.put(SegmentNodeStoreFactory.CUSTOM_BLOB_STORE, customBlobStore); - properties.put(SegmentNodeStoreService.DIRECTORY, folder.getRoot().getAbsolutePath()); + properties.put(SegmentNodeStoreService.REPOSITORY_HOME_DIRECTORY, folder.getRoot().getAbsolutePath()); segmentNodeStoreFactory = context.registerInjectActivateService(new SegmentNodeStoreFactory(), properties); } diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java index 870ba1b..3c4efd6 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java @@ -146,7 +146,7 @@ public class SegmentNodeStoreServiceTest { Map properties = newHashMap(); properties.put(SegmentNodeStoreService.CUSTOM_BLOB_STORE, customBlobStore); - properties.put(SegmentNodeStoreService.DIRECTORY, folder.getRoot().getAbsolutePath()); + properties.put(SegmentNodeStoreService.REPOSITORY_HOME_DIRECTORY, folder.getRoot().getAbsolutePath()); segmentNodeStoreService = context.registerInjectActivateService(new SegmentNodeStoreService(), properties); }