Mercurial Hosting > luan
comparison src/goodjava/lucene/backup/BackupIndexWriter.java @ 1488:af55cfad6e12
start lucene.backup
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sat, 02 May 2020 15:38:48 -0600 |
| parents | |
| children | 22e15cf73040 |
comparison
equal
deleted
inserted
replaced
| 1487:044a360c2300 | 1488:af55cfad6e12 |
|---|---|
| 1 package goodjava.lucene.backup; | |
| 2 | |
| 3 import java.io.File; | |
| 4 import java.io.IOException; | |
| 5 import java.util.List; | |
| 6 import java.util.ArrayList; | |
| 7 import goodjava.io.IoUtils; | |
| 8 import goodjava.lucene.api.LuceneIndexWriter; | |
| 9 import goodjava.lucene.logging.LoggingIndexWriter; | |
| 10 import goodjava.lucene.logging.LogFile; | |
| 11 | |
| 12 | |
| 13 public class BackupIndexWriter extends LoggingIndexWriter { | |
| 14 private final String name; | |
| 15 private final File dir; | |
| 16 | |
| 17 public BackupIndexWriter(LuceneIndexWriter indexWriter,File logDir,String name) throws IOException { | |
| 18 super(indexWriter,logDir); | |
| 19 this.name = name; | |
| 20 File f = new File(System.getProperty("java.io.tmpdir")); | |
| 21 dir = new File(f,"goodjava.lucene/"+name); | |
| 22 dir.mkdirs(); | |
| 23 } | |
| 24 | |
| 25 public synchronized void commit() throws IOException { | |
| 26 super.commit(); | |
| 27 sync(); | |
| 28 } | |
| 29 | |
| 30 private void sync() throws IOException { | |
| 31 for( File f : dir.listFiles() ) { | |
| 32 IoUtils.delete(f); | |
| 33 } | |
| 34 List<LogFile> logs = new ArrayList<LogFile>(); | |
| 35 for( LogFile log : this.logs ) { | |
| 36 File f = new File(dir,log.file.getName()); | |
| 37 IoUtils.link(log.file,f); | |
| 38 logs.add( new LogFile(f) ); | |
| 39 } | |
| 40 } | |
| 41 | |
| 42 } |
