Mercurial Hosting > luan
comparison src/goodjava/lucene/logging/LoggingIndexWriter.java @ 1499:22e15cf73040
lucene.backup
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 09 May 2020 23:14:13 -0600 |
parents | af55cfad6e12 |
children | e66e3d50b289 |
comparison
equal
deleted
inserted
replaced
1498:1b809d2fdf03 | 1499:22e15cf73040 |
---|---|
132 } while( file.exists() ); | 132 } while( file.exists() ); |
133 return new LogFile(file); | 133 return new LogFile(file); |
134 } | 134 } |
135 | 135 |
136 private void deleteUnusedFiles() throws IOException { | 136 private void deleteUnusedFiles() throws IOException { |
137 deleteUnusedFiles(logs,index); | |
138 } | |
139 | |
140 private static void deleteUnusedFiles(List<LogFile> logs,File index) throws IOException { | |
137 Set<String> used = new HashSet<String>(); | 141 Set<String> used = new HashSet<String>(); |
138 used.add( index.getName() ); | 142 used.add( index.getName() ); |
139 for( LogFile lf : logs ) { | 143 for( LogFile lf : logs ) { |
140 used.add( lf.file.getName() ); | 144 used.add( lf.file.getName() ); |
141 } | 145 } |
142 for( File f : logDir.listFiles() ) { | 146 for( File f : index.getParentFile().listFiles() ) { |
143 if( !used.contains(f.getName()) ) { | 147 if( !used.contains(f.getName()) ) { |
144 IoUtils.deleteRecursively(f); | 148 IoUtils.deleteRecursively(f); |
145 } | 149 } |
146 } | 150 } |
147 } | 151 } |
148 | 152 |
149 private void writeIndex() throws IOException { | 153 private void writeIndex() throws IOException { |
154 writeIndex(logs,index); | |
155 } | |
156 | |
157 public static void writeIndex(List<LogFile> logs,File index) throws IOException { | |
150 ByteArrayOutputStream baos = new ByteArrayOutputStream(); | 158 ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
151 DataOutputStream dos = new DataOutputStream(baos); | 159 DataOutputStream dos = new DataOutputStream(baos); |
152 dos.writeInt(version); | 160 dos.writeInt(version); |
153 dos.writeInt(logs.size()); | 161 dos.writeInt(logs.size()); |
154 for( LogFile lf : logs ) { | 162 for( LogFile lf : logs ) { |
157 } | 165 } |
158 dos.close(); | 166 dos.close(); |
159 RandomAccessFile raf = new RandomAccessFile( index, "rwd" ); | 167 RandomAccessFile raf = new RandomAccessFile( index, "rwd" ); |
160 raf.write( baos.toByteArray() ); | 168 raf.write( baos.toByteArray() ); |
161 raf.close(); | 169 raf.close(); |
162 deleteUnusedFiles(); | 170 deleteUnusedFiles(logs,index); |
163 logger.info("writeIndex "+logs.toString()); | 171 //logger.info("writeIndex "+logs.toString()); |
164 } | 172 } |
165 | 173 |
166 private void mergeLogs() throws IOException { | 174 private void mergeLogs() throws IOException { |
167 logger.info("merge"); | 175 logger.info("merge"); |
168 LogFile first = logs.get(0); | 176 LogFile first = logs.get(0); |