Author: mduerig
Date: Mon Nov 14 12:39:39 2016
New Revision: 1769614

URL: http://svn.apache.org/viewvc?rev=1769614&view=rev
Log:
OAK-5069: Backup fails when called from RepositoryManagementMBean#startBackup
Add configuration setting for backup directory
Credits to Andrei Dulceanu for the patch

Modified:
    
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java?rev=1769614&r1=1769613&r2=1769614&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
 Mon Nov 14 12:39:39 2016
@@ -255,6 +255,13 @@ public class SegmentNodeStoreService ext
                     "By default large binary content would be stored within 
segment tar files"
     )
     public static final String CUSTOM_BLOB_STORE = "customBlobStore";
+    
+    @Property(
+            label = "Backup Directory",
+            description="Directory location for storing repository backups. If 
not set, defaults to" +
+                    " 'segmentstore-backup' subdirectory under 
'repository.home'."
+    )
+    public static final String BACKUP_DIRECTORY = "repository.backup.dir";
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -612,7 +619,7 @@ public class SegmentNodeStoreService ext
         registrations.add(registerMBean(
                 whiteboard,
                 FileStoreBackupRestoreMBean.class,
-                new FileStoreBackupRestoreImpl(segmentNodeStore, 
store.getRevisions(), store.getReader(), getDirectory(), executor), 
+                new FileStoreBackupRestoreImpl(segmentNodeStore, 
store.getRevisions(), store.getReader(), getBackupDirectory(), executor), 
                 FileStoreBackupRestoreMBean.TYPE, "Segment node store 
backup/restore"
         ));
 
@@ -676,6 +683,16 @@ public class SegmentNodeStoreService ext
     private File getDirectory() {
         return new File(getBaseDirectory(), "segmentstore");
     }
+    
+    private File getBackupDirectory() {
+        String backupDirectory = property(BACKUP_DIRECTORY);
+        
+        if (backupDirectory != null) {
+            return new File(backupDirectory);
+        }
+        
+        return new File(getBaseDirectory(), "segmentstore-backup");
+    }
 
     private String getMode() {
         String mode = property(MODE);


Reply via email to