]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.acorn/src/org/simantics/acorn/ClusterManager.java
Fixing problems in the database unit testing environment with Acorn
[simantics/platform.git] / bundles / org.simantics.acorn / src / org / simantics / acorn / ClusterManager.java
index a2cb2fa864c0cb6b0155a87442cd147e8e527eb6..cb9ac578e1aade416162beffde3ad27b2051d4f9 100644 (file)
@@ -47,8 +47,9 @@ public class ClusterManager {
        private ArrayList<String> currentChanges = new ArrayList<String>();
 
        public final Path dbFolder;
-       public Path lastSessionDirectory;
-       public Path workingDirectory;
+       private FileCache fileCache;
+       Path lastSessionDirectory;
+       Path workingDirectory;
 
        public LRU<String, ClusterStreamChunk> streamLRU;
        public LRU<Long, ChangeSetInfo> csLRU;
@@ -67,8 +68,9 @@ public class ClusterManager {
         * 
         */
 
-       public ClusterManager(Path dbFolder) {
+       public ClusterManager(Path dbFolder, FileCache fileCache) {
                this.dbFolder = dbFolder;
+               this.fileCache = fileCache;
        }
 
        public ArrayList<String> getChanges(long changeSetId) throws AcornAccessVerificationException, IllegalAcornStateException {
@@ -467,7 +469,7 @@ public class ClusterManager {
                        Path readDir = dbFolder.resolve(parts[1]);
                        int offset = Integer.parseInt(parts[2]);
                        int length = Integer.parseInt(parts[3]);
-                       FileInfo info = new FileInfo(fileLRU, readDir, parts[0], offset, length);
+                       FileInfo info = new FileInfo(fileLRU, fileCache, readDir, parts[0], offset, length);
                        fileLRU.map(info);
                }
                // Update chunks
@@ -488,7 +490,7 @@ public class ClusterManager {
                        Long revisionId = Long.parseLong(parts[0]);
                        int offset = Integer.parseInt(parts[2]);
                        int length = Integer.parseInt(parts[3]);
-                       ChangeSetInfo info = new ChangeSetInfo(csLRU, readDir, revisionId, offset, length);
+                       ChangeSetInfo info = new ChangeSetInfo(csLRU, fileCache, readDir, revisionId, offset, length);
                        csLRU.map(info);
                }
                
@@ -602,7 +604,7 @@ public class ClusterManager {
                try {
                        ArrayList<String> csids = new ArrayList<String>(currentChanges);
                        currentChanges = new ArrayList<String>();
-                       new ChangeSetInfo(csLRU, changeSetId, data, csids);
+                       new ChangeSetInfo(csLRU, fileCache, changeSetId, data, csids);
                } catch (Throwable t) {
                        throw new IllegalAcornStateException(t);
                } finally {
@@ -669,7 +671,7 @@ public class ClusterManager {
                        try {
                                info = fileLRU.get(key);
                                if (info == null) {
-                                       info = new FileInfo(fileLRU, key, (int) (offset + size));
+                                       info = new FileInfo(fileLRU, fileCache, key, (int) (offset + size));
                                }
                        } catch (Throwable t) {
                                throw new IllegalAcornStateException(t);
@@ -705,5 +707,9 @@ public class ClusterManager {
     public long getTailChangeSetId() {
        return state.tailChangeSetId;
     }
-    
+
+    public FileCache getFileCache() {
+        return fileCache;
+    }
+
 }