You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2016/12/09 16:28:34 UTC

[3/7] zest-java git commit: jdbm-entitystore: remove last usage of core/io

jdbm-entitystore: remove last usage of core/io


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/888e4292
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/888e4292
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/888e4292

Branch: refs/heads/develop
Commit: 888e429210844c4245db0c72e952762ce415e6a7
Parents: ee1d1ab
Author: Paul Merlin <pa...@apache.org>
Authored: Fri Dec 9 09:46:28 2016 +0100
Committer: Paul Merlin <pa...@apache.org>
Committed: Fri Dec 9 09:46:28 2016 +0100

----------------------------------------------------------------------
 .../entitystore/jdbm/JdbmEntityStoreMixin.java  | 39 +++++++++++++++++++-
 1 file changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/888e4292/extensions/entitystore-jdbm/src/main/java/org/apache/zest/entitystore/jdbm/JdbmEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jdbm/src/main/java/org/apache/zest/entitystore/jdbm/JdbmEntityStoreMixin.java b/extensions/entitystore-jdbm/src/main/java/org/apache/zest/entitystore/jdbm/JdbmEntityStoreMixin.java
index 19c2b7d..5d3d069 100644
--- a/extensions/entitystore-jdbm/src/main/java/org/apache/zest/entitystore/jdbm/JdbmEntityStoreMixin.java
+++ b/extensions/entitystore-jdbm/src/main/java/org/apache/zest/entitystore/jdbm/JdbmEntityStoreMixin.java
@@ -26,6 +26,7 @@ import java.io.StringReader;
 import java.io.StringWriter;
 import java.io.UncheckedIOException;
 import java.io.Writer;
+import java.nio.file.Files;
 import java.util.Properties;
 import java.util.Spliterator;
 import java.util.Spliterators;
@@ -54,7 +55,6 @@ import org.apache.zest.api.injection.scope.Service;
 import org.apache.zest.api.injection.scope.This;
 import org.apache.zest.api.injection.scope.Uses;
 import org.apache.zest.api.service.ServiceDescriptor;
-import org.apache.zest.io.Files;
 import org.apache.zest.library.fileconfig.FileConfiguration;
 import org.apache.zest.library.locking.ReadLock;
 import org.apache.zest.library.locking.WriteLock;
@@ -82,6 +82,7 @@ public class JdbmEntityStoreMixin
     private RecordManager recordManager;
     private BTree index;
     private Serializer serializer;
+    private File tempDirectory;
 
     @This
     ReadWriteLock lock;
@@ -278,7 +279,7 @@ public class JdbmEntityStoreMixin
         File lgFile = new File( getDatabaseName() + ".lg" );
 
         // Create temporary store
-        File tempDatabase = Files.createTemporayFileOf( dbFile );
+        File tempDatabase = createTemporaryDatabase();
         final RecordManager recordManager;
         final BTree index;
         try
@@ -401,6 +402,40 @@ public class JdbmEntityStoreMixin
         return name;
     }
 
+    private File createTemporaryDatabase()
+    {
+        try
+        {
+            File tempDatabase = Files.createTempFile( getTemporaryDirectory().toPath(),
+                                                      descriptor.identity().toString(),
+                                                      "write" ).toFile();
+            tempDatabase.deleteOnExit();
+            return tempDatabase;
+        }
+        catch( IOException ex )
+        {
+            throw new UncheckedIOException( ex );
+        }
+    }
+
+    private File getTemporaryDirectory() throws IOException
+    {
+        if( tempDirectory != null )
+        {
+            return tempDirectory;
+        }
+        String storeId = descriptor.identity().toString();
+        tempDirectory = fileConfiguration != null
+                        ? new File( fileConfiguration.temporaryDirectory(), storeId )
+                        : new File( new File( System.getProperty( "java.io.tmpdir" ) ),
+                                    storeId );
+        if( !tempDirectory.exists() )
+        {
+            java.nio.file.Files.createDirectories( tempDirectory.toPath() );
+        }
+        return tempDirectory;
+    }
+
     private Properties getProperties()
     {
         JdbmConfiguration config = this.config.get();