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:alluxio.client.file.FileSystemMasterClientPool.java

@Override
public void close() throws IOException {
    FileSystemMasterClient client;//from   w  w  w.  j ava 2 s . com
    Closer closer = Closer.create();
    while ((client = mClientList.poll()) != null) {
        closer.register(client);
    }
    closer.close();
}

From source file:net.ripe.rpki.validator.commands.PrintVersionCommand.java

public void execute() {
    final Closer closer = Closer.create();
    try {//from  w  w  w.j a v a 2s.c  o m
        try {
            final InputStream input = closer.register(getClass().getResourceAsStream("/version.properties"));
            Properties versionProperties = new Properties();
            versionProperties.load(input);
            System.out.println(
                    "RIPE NCC Certificate Validation Tool version " + versionProperties.get("version")); //NOPMD - SystemPrintln
        } catch (final Throwable t) {
            throw closer.rethrow(t);
        } finally {
            closer.close();
        }
    } catch (IOException e) {
        LOG.fatal(e);
    }
}

From source file:com.moz.fiji.commons.monitoring.CompoundNotifier.java

/** {@inheritDoc} */
@Override//ww  w.  j a va  2  s .com
public void close() throws IOException {
    final Closer closer = Closer.create();
    for (final Notifier notifier : mNotifiers) {
        closer.register(notifier);
    }
    closer.close();
}

From source file:alluxio.cli.ConfigurationDocGenerator.java

/**
 * Writes property key to csv files.// ww  w.  j  a  v  a2s  .c  o m
 *
 * @param defaultKeys Collection which is from PropertyKey DEFAULT_KEYS_MAP.values()
 * @param filePath    path for csv files
 */
static void writeCSVFile(Collection<? extends PropertyKey> defaultKeys, String filePath) throws IOException {
    if (defaultKeys.size() == 0) {
        return;
    }

    FileWriter fileWriter;
    Closer closer = Closer.create();
    String[] fileNames = { "user-configuration.csv", "master-configuration.csv", "worker-configuration.csv",
            "security-configuration.csv", "key-value-configuration.csv", "common-configuration.csv",
            "cluster-management-configuration.csv" };

    try {
        // HashMap for FileWriter per each category
        Map<String, FileWriter> fileWriterMap = new HashMap<>();
        for (String fileName : fileNames) {
            fileWriter = new FileWriter(PathUtils.concatPath(filePath, fileName));
            // Write the CSV file header and line separator after the header
            fileWriter.append(CSV_FILE_HEADER + "\n");
            //put fileWriter
            String key = fileName.substring(0, fileName.indexOf("configuration") - 1);
            fileWriterMap.put(key, fileWriter);
            //register file writer
            closer.register(fileWriter);
        }

        // Sort defaultKeys
        List<PropertyKey> dfkeys = new ArrayList<>(defaultKeys);
        Collections.sort(dfkeys);

        for (PropertyKey propertyKey : dfkeys) {
            String pKey = propertyKey.toString();
            String defaultDescription;
            if (propertyKey.getDefaultSupplier().get() == null) {
                defaultDescription = "";
            } else {
                defaultDescription = propertyKey.getDefaultSupplier().getDescription();
            }
            // Quote the whole description to escape characters such as commas.
            defaultDescription = String.format("\"%s\"", defaultDescription);

            // Write property key and default value to CSV
            String keyValueStr = pKey + "," + defaultDescription + "\n";
            if (pKey.startsWith("alluxio.user.")) {
                fileWriter = fileWriterMap.get("user");
            } else if (pKey.startsWith("alluxio.master.")) {
                fileWriter = fileWriterMap.get("master");
            } else if (pKey.startsWith("alluxio.worker.")) {
                fileWriter = fileWriterMap.get("worker");
            } else if (pKey.startsWith("alluxio.security.")) {
                fileWriter = fileWriterMap.get("security");
            } else if (pKey.startsWith("alluxio.keyvalue.")) {
                fileWriter = fileWriterMap.get("key-value");
            } else if (pKey.startsWith("alluxio.integration")) {
                fileWriter = fileWriterMap.get("cluster-management");
            } else {
                fileWriter = fileWriterMap.get("common");
            }
            fileWriter.append(keyValueStr);
        }

        LOG.info("Property Key CSV files were created successfully.");
    } catch (Exception e) {
        throw closer.rethrow(e);
    } finally {
        try {
            closer.close();
        } catch (IOException e) {
            LOG.error("Error while flushing/closing Property Key CSV FileWriter", e);
        }
    }
}

From source file:alluxio.master.RecomputeCommand.java

@Override
public void run() {
    try {//from   w  w  w.j a va  2s . c  o  m
        LOG.info("Exec {} output to {}", mCommand, mFilePath);
        Process p = java.lang.Runtime.getRuntime().exec(mCommand);
        String line;
        Closer closer = Closer.create();
        try {
            BufferedReader bri = closer.register(new BufferedReader(new InputStreamReader(p.getInputStream())));
            BufferedReader bre = closer.register(new BufferedReader(new InputStreamReader(p.getErrorStream())));
            File file = new File(mFilePath);
            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = closer.register(new BufferedWriter(fw));
            while ((line = bri.readLine()) != null) {
                bw.write(line + "\n");
            }
            while ((line = bre.readLine()) != null) {
                bw.write(line + "\n");
            }
            bw.flush();
        } finally {
            closer.close();
        }

        p.waitFor();
        LOG.info("Exec {} output to {} done.", mCommand, mFilePath);
    } catch (IOException e) {
        LOG.error(e.getMessage());
    } catch (InterruptedException e) {
        LOG.error(e.getMessage());
    }
}

From source file:net.ripe.rpki.commons.provisioning.payload.ProvisioningPayloadXmlSerializer.java

private String serializeUTF8Encoded(T payload) throws IOException {
    final String xml;
    final Closer closer = Closer.create();
    try {//from   w w  w  . ja  v a  2  s.  c  om
        final ByteArrayOutputStream outputStream = closer.register(new ByteArrayOutputStream());
        final Writer writer = closer.register(new OutputStreamWriter(outputStream, Charsets.UTF_8));
        writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        writer.write(System.getProperty("line.separator"));
        super.serialize(payload, writer);
        final String rawXml = new String(outputStream.toByteArray(), Charsets.UTF_8);
        xml = rawXml.replace("<message", "<message xmlns=\"http://www.apnic.net/specs/rescerts/up-down/\"");
    } catch (final Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
    return xml;
}

From source file:org.jclouds.vsphere.loaders.VSphereTemplateLoader.java

@Override
public Optional<VirtualMachine> load(String vmName) {
    Closer closer = Closer.create();
    VSphereServiceInstance instance = serviceInstance.get();
    closer.register(instance);
    try {//w  w  w.  j  a va2 s .c  o m
        try {
            VirtualMachine vm = (VirtualMachine) new InventoryNavigator(instance.getInstance().getRootFolder())
                    .searchManagedEntity("VirtualMachine", vmName);
            if (VSpherePredicate.isTemplatePredicate.apply(vm)) {
                return Optional.of(vm);
            }
        } catch (Exception e) {
            logger.error("Can't find template", e);
            throw closer.rethrow(e);
        } finally {
            closer.close();
        }
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    } finally {
        return Optional.absent();
    }
}

From source file:net.derquinse.common.io.BytesTransformer.java

/** Transforms a byte source. */
public void transform(ByteSource input, ByteSink output) throws IOException {
    checkInput(input);//ww w.  j a va2s . c om
    checkOutput(output);
    final Closer closer = Closer.create();
    try {
        transform(closer.register(input.openStream()), closer.register(output.openStream()));
    } finally {
        closer.close();
    }
}

From source file:net.derquinse.common.io.BytesTransformer.java

/** Transforms a byte source. */
public void transform(ByteSource input, OutputStream output) throws IOException {
    checkInput(input);/* w w  w.j  a  v a  2s  .c  om*/
    checkOutput(output);
    final Closer closer = Closer.create();
    try {
        transform(closer.register(input.openStream()), output);
    } finally {
        closer.close();
    }
}

From source file:org.grouplens.lenskit.cli.PackRatings.java

@Override
public void execute() throws IOException {
    logger.info("packing ratings from {}", input);
    logger.debug("using delimiter {}", getDelimiter());
    EventDAO dao = input.getEventDAO();/*w ww.  j  av  a 2 s  .co m*/
    EnumSet<BinaryFormatFlag> flags = EnumSet.noneOf(BinaryFormatFlag.class);
    if (useTimestamps()) {
        flags.add(BinaryFormatFlag.TIMESTAMPS);
    }
    logger.info("packing to {} with flags {}", getOutputFile(), flags);
    Closer closer = Closer.create();
    try {
        BinaryRatingPacker packer = closer.register(BinaryRatingPacker.open(getOutputFile(), flags));
        Cursor<Rating> ratings = closer.register(dao.streamEvents(Rating.class));
        packer.writeRatings(ratings);
        logger.info("packed {} ratings", packer.getRatingCount());
    } catch (Throwable th) {
        throw closer.rethrow(th);
    } finally {
        closer.close();
    }
}