| commit 729: | bc81e59582dd |
| parent 728: | 44d818e0b54e |
| branch: | default |
Removed RazorRepository.createCache()
It calls RazorHistoryParser.parse() once for each file in the
repository, so it's better to rely on the generic implementation in
Repository which would call it only once for the whole repository.
20 months ago
Changed (Δ3.9 KB):
raw changeset »
src/org/opensolaris/opengrok/history/RazorRepository.java (0 lines added, 112 lines removed)
Up to file-list src/org/opensolaris/opengrok/history/RazorRepository.java:
| … | … | @@ -25,15 +25,10 @@ import java.io.File; |
25 |
25 |
import java.io.FileInputStream; |
26 |
26 |
import java.io.IOException; |
27 |
27 |
import java.io.InputStream; |
28 |
import java.util.ArrayList; |
|
29 |
import java.util.HashMap; |
|
30 |
import java.util.List; |
|
31 |
import java.util.Map; |
|
32 |
28 |
import java.util.logging.Level; |
33 |
29 |
import java.util.zip.GZIPInputStream; |
34 |
30 |
|
35 |
31 |
import org.opensolaris.opengrok.OpenGrokLogger; |
36 |
import org.opensolaris.opengrok.configuration.RuntimeEnvironment; |
|
37 |
32 |
|
38 |
33 |
/** |
39 |
34 |
* Adds access to to a Razor Repository |
| … | … | @@ -297,113 +292,6 @@ public class RazorRepository extends Rep |
297 |
292 |
throw new UnsupportedOperationException("Not supported yet."); |
298 |
293 |
} |
299 |
294 |
|
300 |
@Override |
|
301 |
void createCache(HistoryCache cache) throws HistoryException { |
|
302 |
try { |
|
303 |
createCacheHelper(cache); |
|
304 |
} catch (IOException ioe) { |
|
305 |
throw new HistoryException(ioe); |
|
306 |
} catch (InstantiationException ie) { |
|
307 |
throw new HistoryException(ie); |
|
308 |
} catch (IllegalAccessException iae) { |
|
309 |
throw new HistoryException(iae); |
|
310 |
} |
|
311 |
} |
|
312 |
||
313 |
/** |
|
314 |
* Helper method which performs the work for |
|
315 |
* {@link #createCache(HistoryCache)} without converting checked |
|
316 |
* exceptions to {@code HistoryException} |
|
317 |
* |
|
318 |
* @throws HistoryException if accessing the history cache fails |
|
319 |
* @throws IOException if an I/O error occurs |
|
320 |
* @throws InstantiationException if the parser class cannot be instatiated |
|
321 |
* @throws IllegalAccessException if the method does not have access to |
|
322 |
* the constructor of the parser class |
|
323 |
*/ |
|
324 |
private void createCacheHelper(HistoryCache cache) |
|
325 |
throws HistoryException, IOException, |
|
326 |
InstantiationException, IllegalAccessException |
|
327 |
{ |
|
328 |
||
329 |
Class<? extends HistoryParser> dhpClass = getDirectoryHistoryParser(); |
|
330 |
Class<? extends HistoryParser> fhpClass = getHistoryParser(); |
|
331 |
||
332 |
// If we don't have a directory parser, we can't create the cache |
|
333 |
// this way. Just give up and return. |
|
334 |
if (dhpClass == null) { |
|
335 |
return; |
|
336 |
} |
|
337 |
||
338 |
HistoryParser directoryHistoryParser = dhpClass.newInstance(); |
|
339 |
HistoryParser fileHistoryParser = null; |
|
340 |
||
341 |
if (fhpClass != null) { |
|
342 |
fileHistoryParser = fhpClass.newInstance(); |
|
343 |
} |
|
344 |
||
345 |
File directory = new File(getDirectoryName()); |
|
346 |
||
347 |
History history = directoryHistoryParser.parse(directory, this); |
|
348 |
||
349 |
if (history != null && history.getHistoryEntries() != null) { |
|
350 |
HashMap<String, List<HistoryEntry>> map = |
|
351 |
new HashMap<String, List<HistoryEntry>>(); |
|
352 |
||
353 |
for (HistoryEntry e : history.getHistoryEntries()) { |
|
354 |
createCacheForEntry(e, map, fileHistoryParser); |
|
355 |
} |
|
356 |
||
357 |
File root = RuntimeEnvironment.getInstance().getSourceRootFile(); |
|
358 |
for (Map.Entry<String, List<HistoryEntry>> e : map.entrySet()) { |
|
359 |
for (HistoryEntry ent : e.getValue()) { |
|
360 |
ent.strip(); |
|
361 |
} |
|
362 |
History hist = new History(); |
|
363 |
hist.setHistoryEntries(e.getValue()); |
|
364 |
File file = new File(root, e.getKey()); |
|
365 |
if (!file.isDirectory()) { |
|
366 |
cache.store(hist, file, this); |
|
367 |
} |
|
368 |
} |
|
369 |
} |
|
370 |
} |
|
371 |
||
372 |
private void createCacheForEntry( |
|
373 |
HistoryEntry e, Map<String, List<HistoryEntry>> map, |
|
374 |
HistoryParser fileHistoryParser) throws HistoryException |
|
375 |
{ |
|
376 |
for (String fileName : e.getFiles()) { |
|
377 |
List<HistoryEntry> list = map.get(fileName); |
|
378 |
if (list == null) { |
|
379 |
list = getHistoryEntries(fileHistoryParser, fileName); |
|
380 |
if (list == null) { |
|
381 |
list = new ArrayList<HistoryEntry>(); |
|
382 |
} |
|
383 |
map.put(fileName, list); |
|
384 |
} |
|
385 |
||
386 |
if (e.getDate() != null) { |
|
387 |
list.add(e); |
|
388 |
} |
|
389 |
} |
|
390 |
} |
|
391 |
||
392 |
private List<HistoryEntry> getHistoryEntries( |
|
393 |
HistoryParser fileHistoryParser, String fileName) |
|
394 |
throws HistoryException |
|
395 |
{ |
|
396 |
List<HistoryEntry> list = null; |
|
397 |
if (fileHistoryParser != null) { |
|
398 |
File file = getSourceNameForOpenGrokName(fileName); |
|
399 |
History fileHistory = fileHistoryParser.parse(file, this); |
|
400 |
if (fileHistory != null) { |
|
401 |
list = fileHistory.getHistoryEntries(); |
|
402 |
} |
|
403 |
} |
|
404 |
return list; |
|
405 |
} |
|
406 |
||
407 |
295 |
private File pathTranslation(File file, String intermediateElements, String filePrefix, String fileSuffix) throws IOException { |
408 |
296 |
|
409 |
297 |
File f = file; |
