View Javadoc
1   package org.kuali.common.devops.archive.sweep.test;
2   
3   import static com.google.common.base.Stopwatch.createStarted;
4   import static java.lang.String.format;
5   import static java.util.Arrays.asList;
6   import static org.kuali.common.core.io.Files.md5;
7   import static org.kuali.common.core.io.Files.sumSizes;
8   import static org.kuali.common.util.FormatUtils.getSize;
9   import static org.kuali.common.util.FormatUtils.getTime;
10  import static org.kuali.common.util.log.Loggers.newLogger;
11  
12  import java.io.File;
13  import java.io.IOException;
14  import java.util.List;
15  
16  import org.junit.Test;
17  import org.kuali.common.core.base.TimedInterval;
18  import org.kuali.common.core.io.scan.DefaultScanService;
19  import org.kuali.common.core.io.scan.ScanRequest;
20  import org.kuali.common.core.io.scan.ScanResult;
21  import org.kuali.common.core.io.scan.ScanService;
22  import org.kuali.common.core.json.api.JsonService;
23  import org.kuali.common.core.json.jackson.JacksonJsonService;
24  import org.kuali.common.core.system.VirtualSystem;
25  import org.slf4j.Logger;
26  
27  import com.google.common.base.Splitter;
28  import com.google.common.base.Stopwatch;
29  
30  public class ScanWithMD5Test {
31  
32  	private static final Logger logger = newLogger();
33  
34  	@Test
35  	public void test() {
36  		try {
37  			info("%s", getTime(950110));
38  			VirtualSystem vs = VirtualSystem.build();
39  			JsonService json = new JacksonJsonService();
40  			File directory = new File(vs.getUser().getHome(), "/.jenkins");
41  			List<String> includes = asList("jobs/**/builds/**");
42  			ScanRequest request = ScanRequest.builder(directory).withIncludes(includes).build();
43  			ScanService scanner = new DefaultScanService();
44  			show(json, request);
45  			ScanResult result = scanner.scan(request);
46  			show(json, result.getTiming());
47  			info("%s", getSize(sumSizes(result.getFiles())));
48  			Stopwatch sw = createStarted();
49  			List<File> files = result.getFiles();
50  			for (File file : files) {
51  				try {
52  					md5(file);
53  				} catch (IOException e) {
54  					info("error -> [%s]", e);
55  				}
56  			}
57  			TimedInterval timing = TimedInterval.build(sw);
58  			show(json, timing);
59  		} catch (Throwable e) {
60  			e.printStackTrace();
61  		}
62  	}
63  
64  	protected <T> void show(JsonService service, T reference) {
65  		String json = service.writeString(reference);
66  		Iterable<String> tokens = Splitter.on('\n').split(json);
67  		for (String token : tokens) {
68  			info("%s", token);
69  		}
70  	}
71  
72  	protected void info(String msg, Object... args) {
73  		logger.info((args == null || args.length == 0) ? msg : format(msg, args));
74  	}
75  
76  }