ThreadDumpsFileManagerService.java 1.9 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.felix.scr.annotations.Activate
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Service
 *  org.osgi.service.component.ComponentContext
 */
package com.adobe.granite.threaddump.impl;

import com.adobe.granite.threaddump.ThreadDumpsFileManager;
import com.adobe.granite.threaddump.impl.BaseThreadDumpManager;
import com.adobe.granite.threaddump.impl.DumpFilenameFilter;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
import org.osgi.service.component.ComponentContext;

@Component
@Service(value={ThreadDumpsFileManager.class})
public final class ThreadDumpsFileManagerService
extends BaseThreadDumpManager
implements ThreadDumpsFileManager {
    private final FilenameFilter filter = new DumpFilenameFilter();

    @Activate
    protected void activate(ComponentContext context) {
        super.activate(context);
    }

    public String[] getThreadDumpsBackupsDirectories() {
        return this.getStoringDirectory().list(this.filter);
    }

    public /* varargs */ void compressThreadDumps(OutputStream target, String ... selected) throws IOException {
        ZipOutputStream zos = new ZipOutputStream(target);
        ZipEntry entry = new ZipEntry(this.getStoringDirectory().getName());
        entry.setSize(this.getStoringDirectory().length());
        zos.putNextEntry(entry);
        for (String selectedDir : selected) {
            ThreadDumpsFileManagerService.addToZip(zos, this.getStoringDirectory(), new File(this.getStoringDirectory(), selectedDir));
        }
        zos.closeEntry();
        zos.finish();
    }
}