dec351c6f4082008e0c25dc34965ea0da593d25d
[ccsdk/apps.git] / sdnr / wireless-transport / code-Carbon-SR1 / apps / info / impl / src / test / java / CompressionTest.java
1 import java.io.BufferedOutputStream;
2 import java.io.File;
3 import java.io.FileInputStream;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6
7 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
8 import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
9 import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
10 import org.apache.commons.compress.utils.IOUtils;
11
12 public class CompressionTest {
13
14         final static String KARAFLOG_FOLDER="/home/herbert/odl/distribution-karaf-0.6.1-Carbon/data/log/";
15         public static void main(String[] args)
16         {
17                 createLogDownload("log.tar.gz");
18         }
19         private static void createLogDownload(String tarFilename) {
20                 System.out.println("start creating tar file "+tarFilename);
21                 File f = new File(tarFilename);
22                 if (f.exists())
23                         f.delete();
24                 FileOutputStream fOut = null;
25                 BufferedOutputStream bOut = null;
26                 GzipCompressorOutputStream gzOut = null;
27                 TarArchiveOutputStream tOut = null;
28                 try {
29                         System.out.println(new File(".").getAbsolutePath());
30                         fOut = new FileOutputStream(new File(tarFilename));
31                         bOut = new BufferedOutputStream(fOut);
32                         gzOut = new GzipCompressorOutputStream(bOut);
33                         tOut = new TarArchiveOutputStream(gzOut);
34                         addFileToTarGz(tOut, KARAFLOG_FOLDER, "", ".log");
35                 } catch (IOException e) {
36                         System.out.println("problem creating tar:" + e.getMessage());
37                 } finally {
38                         try {
39                                 if (tOut != null) {
40                                         tOut.finish();
41                                         tOut.close();
42                                 }
43                                 if (gzOut != null)
44                                         gzOut.close();
45                                 if (bOut != null)
46                                         bOut.close();
47                                 if (fOut != null)
48                                         fOut.close();
49                                 System.out.println("finished creating tar file");
50                         } catch (IOException e) {
51                                 System.out.println("problem closing streams:" + e.getMessage());
52                         }
53                 }
54
55         }
56
57         private static void addFileToTarGz(TarArchiveOutputStream tOut, String path, String base, final String filter)
58                         throws IOException {
59                 File f = new File(path);
60                 String entryName = base + f.getName();
61                 TarArchiveEntry tarEntry = new TarArchiveEntry(f, entryName);
62                 tOut.putArchiveEntry(tarEntry);
63
64                 if (f.isFile())
65                 {
66                         if( f.getName().contains(filter)) {
67                                 System.out.println("adding to tar:"+f.getName());
68                                 IOUtils.copy(new FileInputStream(f), tOut);
69                                 tOut.closeArchiveEntry();
70                         }
71                         else
72                                 System.out.println("file "+f.getName()+" filtered out, filter="+filter);
73                 } else {
74                         tOut.closeArchiveEntry();
75                         File[] children = f.listFiles();
76                         if (children != null) {
77                                 for (File child : children) {
78                                         System.out.println(child.getName());
79                                         addFileToTarGz(tOut, child.getAbsolutePath(), entryName + "/", filter);
80                                 }
81                         }
82                 }
83         }
84 }