Example usage for com.google.common.io Closer register

List of usage examples for com.google.common.io Closer register

Introduction

In this page you can find the example usage for com.google.common.io Closer register.

Prototype


public <C extends Closeable> C register(@Nullable C closeable) 

Source Link

Document

Registers the given closeable to be closed when this Closer is #close closed .

Usage

From source file:com.googlecode.jmxtrans.test.TCPEchoServer.java

public void start() {
    checkState(thread == null, "Server already started");

    thread = new Thread(new Runnable() {
        @Override//  ww w .ja va2s . co m
        public void run() {
            Closer closer = Closer.create();
            try {
                try {
                    server = closer.register(new ServerSocket(0));
                    while (true) {
                        processRequests(server);
                    }
                } catch (Throwable t) {
                    throw closer.rethrow(t);
                } finally {
                    closer.close();
                    server = null;
                }
            } catch (IOException ioe) {
                log.error("Exception in TCP echo server", ioe);
            }

        }
    });
    thread.start();
    try {
        synchronized (startSynchro) {
            startSynchro.wait(1000);
        }
    } catch (InterruptedException interrupted) {
        log.error("TCP Echo server seems to take too long to start", interrupted);
    }
}

From source file:com.android.builder.internal.SymbolWriter.java

public void write() throws IOException {
    Splitter splitter = Splitter.on('.');
    Iterable<String> folders = splitter.split(mPackageName);
    File file = new File(mOutFolder);
    for (String folder : folders) {
        file = new File(file, folder);
    }// ww  w.j a v  a  2  s .co  m
    file.mkdirs();
    file = new File(file, SdkConstants.FN_RESOURCE_CLASS);

    Closer closer = Closer.create();
    try {
        BufferedWriter writer = closer.register(Files.newWriter(file, Charsets.UTF_8));

        writer.write("/* AUTO-GENERATED FILE.  DO NOT MODIFY.\n");
        writer.write(" *\n");
        writer.write(" * This class was automatically generated by the\n");
        writer.write(" * aapt tool from the resource data it found.  It\n");
        writer.write(" * should not be modified by hand.\n");
        writer.write(" */\n");

        writer.write("package ");
        writer.write(mPackageName);
        writer.write(";\n\npublic final class R {\n");

        Table<String, String, SymbolEntry> symbols = getAllSymbols();
        Table<String, String, SymbolEntry> values = mValues.getSymbols();

        Set<String> rowSet = symbols.rowKeySet();
        List<String> rowList = Lists.newArrayList(rowSet);
        Collections.sort(rowList);

        for (String row : rowList) {
            writer.write("\tpublic static final class ");
            writer.write(row);
            writer.write(" {\n");

            Map<String, SymbolEntry> rowMap = symbols.row(row);
            Set<String> symbolSet = rowMap.keySet();
            ArrayList<String> symbolList = Lists.newArrayList(symbolSet);
            Collections.sort(symbolList);

            for (String symbolName : symbolList) {
                // get the matching SymbolEntry from the values Table.
                SymbolEntry value = values.get(row, symbolName);
                if (value != null) {
                    writer.write("\t\tpublic static final ");
                    writer.write(value.getType());
                    writer.write(" ");
                    writer.write(value.getName());
                    writer.write(" = ");
                    writer.write(value.getValue());
                    writer.write(";\n");
                }
            }

            writer.write("\t}\n");
        }

        writer.write("}\n");
    } catch (Throwable e) {
        throw closer.rethrow(e);
    } finally {
        closer.close();
    }
}

From source file:com.sk89q.worldguard.six2five.RegionsProcessor.java

public boolean downgrade(File file) throws IOException {
    Yaml yaml = new Yaml();
    Map<Object, Object> data;

    Closer closer = Closer.create();
    try {/*from  w ww. j  ava 2 s .  c om*/
        InputStream is = closer.register(new FileInputStream(file));
        BufferedInputStream bis = closer.register(new BufferedInputStream(is));
        data = (Map<Object, Object>) yaml.load(bis);

        log.info("Converting UUIDs to names...");
        downgrade(data);
    } catch (FileNotFoundException e) {
        log.log(Level.WARNING, "The file '" + file.getAbsolutePath() + "' does not exist");
        return false;
    } catch (IOException e) {
        log.log(Level.WARNING, "Failed to open file for reading", e);
        return false;
    } finally {
        closer.close();
    }

    closer = Closer.create();
    try {
        File backupFile = new File(file.getParentFile(), Files.getNameWithoutExtension(file.getName()) + "-"
                + System.currentTimeMillis() + "." + Files.getFileExtension(file.getName()) + ".backup");

        if (!file.renameTo(backupFile)) {
            throw new IOException("Failed to rename old file to " + backupFile.getAbsolutePath());
        }

        log.info("Moved regions file to the backup file at " + backupFile.getAbsolutePath());

        FileWriter fw = closer.register(new FileWriter(file));
        yaml.dump(data, fw);
    } catch (IOException e) {
        log.log(Level.WARNING, "Failed to open file for writing", e);
        return false;
    } finally {
        closer.close();
    }

    log.info("UUID -> name conversion is complete");

    return true;
}

From source file:alluxio.network.thrift.SocketTrackingTServerSocket.java

/**
 * Closes all socket connections that have been accepted by this server socket.
 *///from ww w. j  a va  2s  .  c  om
private void closeClientSockets() throws IOException {
    // Possible since super constructor can call close().
    if (mSockets == null) {
        return;
    }
    Closer closer = Closer.create();
    int count = 0;
    for (Socket s : mSockets) {
        if (!s.isClosed()) {
            closer.register(s);
            count++;
        }
    }
    closer.close();
    LOG.info("Closed {} client sockets", count);
}

From source file:io.macgyver.plugin.artifactory.ArtifactoryClientImpl.java

@Override
public File fetchArtifactToFile(String path, File out) throws IOException {
    Closer closer = Closer.create();
    try {/*from   w w  w  .ja  v  a2 s.c o m*/
        BufferedInputStream is = new BufferedInputStream(fetchArtifact(path));
        closer.register(is);
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(out));
        closer.register(bos);

        ByteStreams.copy(is, bos);
    } finally {
        closer.close();
    }

    return out;
}

From source file:org.grouplens.lenskit.eval.data.subsample.SubsampleTask.java

/**
 * Run the Subsample command.// w ww.jav a  2 s. c o m
 *
 * @return DataSource The subsample DataSource file
 * @throws org.grouplens.lenskit.eval.TaskExecutionException
 *
 */
@SuppressWarnings("PMD.AvoidCatchingThrowable")
@Override
public DataSource perform() throws TaskExecutionException {
    UpToDateChecker check = new UpToDateChecker();
    check.addInput(source.lastModified());
    File subsampleFile = getOutput();
    check.addOutput(subsampleFile);
    if (check.isUpToDate()) {
        logger.info("subsample {} up to date", getName());
        return makeDataSource();
    }
    try {
        logger.info("sampling {} of {}", subsampleFraction, source.getName());
        Closer closer = Closer.create();
        RatingWriter subsampleWriter = closer.register(RatingWriters.csv(subsampleFile));
        try {
            mode.doSample(source, subsampleWriter, subsampleFraction, getProject().getRandom());
        } catch (Throwable th) {
            throw closer.rethrow(th);
        } finally {
            closer.close();
        }
    } catch (IOException e) {
        throw new TaskExecutionException("Error writing output file", e);
    }
    return makeDataSource();
}

From source file:org.gradle.caching.local.internal.DirectoryBuildCacheService.java

@Override
public void store(final BuildCacheKey key, final BuildCacheEntryWriter result) throws BuildCacheException {
    tempFileStore.withTempFile(key, new Action<File>() {
        @Override// ww  w  .j  av a2 s.com
        public void execute(@Nonnull File file) {
            try {
                Closer closer = Closer.create();
                try {
                    result.writeTo(closer.register(new FileOutputStream(file)));
                } catch (Exception e) {
                    throw closer.rethrow(e);
                } finally {
                    closer.close();
                }
            } catch (IOException ex) {
                throw UncheckedException.throwAsUncheckedException(ex);
            }

            storeLocally(key, file);
        }
    });
}

From source file:org.apache.jackrabbit.oak.plugins.tika.CSVFileGenerator.java

public void generate(FluentIterable<BinaryResource> binaries) throws IOException {
    Closer closer = Closer.create();
    int count = 0;
    try {/*from ww w. j  ava 2s.c o m*/
        CSVPrinter printer = new CSVPrinter(Files.newWriter(outFile, Charsets.UTF_8),
                CSVFileBinaryResourceProvider.FORMAT);
        closer.register(printer);
        for (BinaryResource br : binaries) {
            count++;
            printer.printRecord(br.getBlobId(), br.getByteSource().size(), br.getMimeType(), br.getEncoding(),
                    br.getPath());
        }
        printer.flush();
        log.info("Generated csv output at {} with {} entries", outFile.getAbsolutePath(), count);
    } finally {
        closer.close();
    }
}

From source file:net.ripe.rpki.commons.crypto.util.PregeneratedKeyPairFactory.java

private void initKeyStore() {
    try {// w  w w  .j a  v a 2  s.com
        final Closer closer = Closer.create();
        try {
            InputStream input;
            try {
                input = closer.register(new FileInputStream(keyStoreFile));
            } catch (FileNotFoundException e) {
                input = null;
            }
            pregeneratedKeys = KeyStore.getInstance("JKS", "SUN");
            pregeneratedKeys.load(input, PASSPHRASE);
        } catch (final Throwable t) {
            throw closer.rethrow(t);
        } finally {
            closer.close();
        }
    } catch (final IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:com.skcraft.launcher.creator.util.ModInfoReader.java

/**
 * Detect the mods listed in the given .jar
 *
 * @param file The file/*from   w  ww. j  av  a  2s  .  co m*/
 * @return A list of detected mods
 */
public List<? extends ModInfo> detectMods(File file) {
    Closer closer = Closer.create();

    try {
        FileInputStream fis = closer.register(new FileInputStream(file));
        BufferedInputStream bis = closer.register(new BufferedInputStream(fis));
        ZipInputStream zis = closer.register(new ZipInputStream(bis));

        ZipEntry entry;
        while ((entry = zis.getNextEntry()) != null) {
            if (entry.getName().equalsIgnoreCase(FORGE_INFO_FILENAME)) {
                List<ForgeModInfo> mods;
                String content = CharStreams.toString(new InputStreamReader(zis, Charsets.UTF_8));

                try {
                    mods = mapper.readValue(content, ForgeModManifest.class).getMods();
                } catch (JsonMappingException | JsonParseException e) {
                    mods = mapper.readValue(content, new TypeReference<List<ForgeModInfo>>() {
                    });
                }

                if (mods != null) {
                    // Ignore "examplemod"
                    return Collections.unmodifiableList(
                            mods.stream().filter(info -> !info.getModId().equals("examplemod"))
                                    .collect(Collectors.toList()));
                } else {
                    return Collections.emptyList();
                }

            } else if (entry.getName().equalsIgnoreCase(LITELOADER_INFO_FILENAME)) {
                String content = CharStreams.toString(new InputStreamReader(zis, Charsets.UTF_8));
                return new ImmutableList.Builder<ModInfo>()
                        .add(mapper.readValue(content, LiteLoaderModInfo.class)).build();
            }
        }

        return Collections.emptyList();
    } catch (JsonMappingException e) {
        log.log(Level.WARNING, "Unknown format " + FORGE_INFO_FILENAME + " file in " + file.getAbsolutePath(),
                e);
        return Collections.emptyList();
    } catch (JsonParseException e) {
        log.log(Level.WARNING, "Corrupt " + FORGE_INFO_FILENAME + " file in " + file.getAbsolutePath(), e);
        return Collections.emptyList();
    } catch (IOException e) {
        log.log(Level.WARNING, "Failed to read " + file.getAbsolutePath(), e);
        return Collections.emptyList();
    } finally {
        try {
            closer.close();
        } catch (IOException ignored) {
        }
    }
}