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.github.fge.jsonschema.core.load.URIManager.java

/**
 * Get the content at a given URI as a {@link JsonNode}
 *
 * @param uri the URI// w ww .  j av  a 2 s. c  o m
 * @return the content
 * @throws NullPointerException provided URI is null
 * @throws ProcessingException scheme is not registered, failed to get
 * content, or content is not JSON
 */
public JsonNode getContent(final URI uri) throws ProcessingException {
    BUNDLE.checkNotNull(uri, "jsonRef.nullURI");

    if (!uri.isAbsolute())
        throw new ProcessingException(new ProcessingMessage()
                .setMessage(BUNDLE.getMessage("refProcessing.uriNotAbsolute")).put("uri", uri));

    final String scheme = uri.getScheme();

    final URIDownloader downloader = downloaders.get(scheme);

    if (downloader == null)
        throw new ProcessingException(
                new ProcessingMessage().setMessage(BUNDLE.getMessage("refProcessing.unhandledScheme"))
                        .putArgument("scheme", scheme).putArgument("uri", uri));

    final Closer closer = Closer.create();
    final InputStream in;

    try {
        in = closer.register(downloader.fetch(uri));
        return reader.fromInputStream(in);
    } catch (JsonMappingException e) {
        throw new ProcessingException(
                new ProcessingMessage().setMessage(e.getOriginalMessage()).put("uri", uri));
    } catch (JsonParseException e) {
        throw new ProcessingException(
                new ProcessingMessage().setMessage(BUNDLE.getMessage("uriManager.uriNotJson"))
                        .putArgument("uri", uri).put("parsingMessage", e.getOriginalMessage()));
    } catch (IOException e) {
        throw new ProcessingException(
                new ProcessingMessage().setMessage(BUNDLE.getMessage("uriManager.uriIOError"))
                        .putArgument("uri", uri).put("exceptionMessage", e.getMessage()));
    } finally {
        try {
            closer.close();
        } catch (IOException ignored) {
            throw new IllegalStateException();
        }
    }
}

From source file:com.android.builder.compiling.BuildConfigGenerator.java

/**
 * Generates the BuildConfig class./*from   w w w  .ja  v  a 2  s  .  c  om*/
 */
public void generate() throws IOException {
    File pkgFolder = getFolderPath();
    if (!pkgFolder.isDirectory()) {
        if (!pkgFolder.mkdirs()) {
            throw new RuntimeException("Failed to create " + pkgFolder.getAbsolutePath());
        }
    }

    File buildConfigJava = new File(pkgFolder, BUILD_CONFIG_NAME);

    Closer closer = Closer.create();
    try {
        FileOutputStream fos = closer.register(new FileOutputStream(buildConfigJava));
        OutputStreamWriter out = closer.register(new OutputStreamWriter(fos, Charsets.UTF_8));
        JavaWriter writer = closer.register(new JavaWriter(out));

        writer.emitJavadoc("Automatically generated file. DO NOT MODIFY").emitPackage(mBuildConfigPackageName)
                .beginType("BuildConfig", "class", PUBLIC_FINAL);

        for (ClassField field : mFields) {
            emitClassField(writer, field);
        }

        for (Object item : mItems) {
            if (item instanceof ClassField) {
                emitClassField(writer, (ClassField) item);
            } else if (item instanceof String) {
                writer.emitSingleLineComment((String) item);
            }
        }

        writer.endType();
    } catch (Throwable e) {
        throw closer.rethrow(e);
    } finally {
        closer.close();
    }
}

From source file:org.eclipse.m2e.core.internal.index.nexus.AetherClientResourceFetcher.java

public void retrieve(String name, File targetFile) throws IOException, FileNotFoundException {

    String url = baseUrl + "/" + name;
    Response response = aetherClient.get(url);

    Closer closer = Closer.create();
    try {/*from www.ja v a2  s .co  m*/
        InputStream is = closer.register(response.getInputStream());
        OutputStream os = closer.register(new BufferedOutputStream(new FileOutputStream(targetFile)));
        final byte[] buffer = new byte[1024 * 1024];
        int n = 0;
        while (-1 != (n = is.read(buffer))) {
            os.write(buffer, 0, n);
            if (monitor.isCanceled()) {
                throw new OperationCanceledException();
            }
        }
    } finally {
        closer.close();
    }
}

From source file:com.spotify.docker.client.DefaultLogStream.java

public void attach(final OutputStream stdout, final OutputStream stderr, boolean closeAtEof)
        throws IOException {
    final Closer closer = Closer.create();
    try {//from  w ww.j av  a 2 s .c  o m
        if (closeAtEof) {
            closer.register(stdout);
            closer.register(stderr);
        }

        while (this.hasNext()) {
            final LogMessage message = this.next();
            final ByteBuffer content = message.content();

            switch (message.stream()) {
            case STDOUT:
                writeAndFlush(content, stdout);
                break;
            case STDERR:
                writeAndFlush(content, stderr);
                break;
            case STDIN:
            default:
                break;
            }
        }
    } catch (Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
}

From source file:com.android.builder.internal.packaging.zfile.ApkZFileCreator.java

@Override
public void writeFile(@NonNull File inputFile, @NonNull String apkPath) throws IOException {
    Preconditions.checkState(!mClosed, "mClosed == true");

    boolean mayCompress = !mNoCompressPredicate.test(apkPath);

    Closer closer = Closer.create();
    try {/*from  w  w  w. j  ava2  s  . c  o m*/
        FileInputStream inputFileStream = closer.register(new FileInputStream(inputFile));
        mZip.add(apkPath, inputFileStream, mayCompress);
    } catch (IOException e) {
        throw closer.rethrow(e, IOException.class);
    } catch (Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
}

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

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

    thread = new Thread(new Runnable() {
        @Override//from  w w  w .  j  a v a2  s.  c  o  m
        public void run() {
            Closer closer = Closer.create();
            try {
                try {
                    socket = closer.register(new DatagramSocket());
                    while (true) {
                        processRequests(socket);
                    }
                } catch (Throwable t) {
                    throw closer.rethrow(t);
                } finally {
                    closer.close();
                    socket = 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("UDP server seems to take too long to start", interrupted);
    }
}

From source file:com.googlecode.jmxtrans.model.output.kafka.KafkaWriter.java

private String createJsonMessage(Server server, Query query, List<String> typeNames, Result result,
        Entry<String, Object> values, Object value) throws IOException {
    String keyString = getKeyString(server, query, result, values, typeNames, this.rootPrefix);
    String cleanKeyString = keyString.replaceAll("[()]", "_");

    Closer closer = Closer.create();
    try {/*from  ww w .  j  a v  a  2  s .com*/
        ByteArrayOutputStream out = closer.register(new ByteArrayOutputStream());
        JsonGenerator generator = closer.register(jsonFactory.createGenerator(out, UTF8));
        generator.writeStartObject();
        generator.writeStringField("keyspace", cleanKeyString);
        generator.writeStringField("value", value.toString());
        generator.writeNumberField("timestamp", result.getEpoch() / 1000);
        generator.writeObjectFieldStart("tags");

        for (Entry<String, String> tag : this.tags.entrySet()) {
            generator.writeStringField(tag.getKey(), tag.getValue());
        }

        generator.writeEndObject();
        generator.writeEndObject();
        generator.close();
        return out.toString("UTF-8");
    } catch (Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
}

From source file:org.apache.jackrabbit.oak.upgrade.cli.node.Jackrabbit2Factory.java

public RepositoryContext create(Closer closer) throws RepositoryException {
    RepositoryContext source = RepositoryContext.create(RepositoryConfig.create(repositoryFile, repositoryDir));
    closer.register(asCloseable(source));
    return source;
}

From source file:com.tinspx.util.io.GroupReader.java

/**
 * Closes all active {@code Reader}s that have been added to this
 * GroupReader and removes all active {@code Readers}. Unless another Reader
 * is added to this GroupReader, all read methods will return -1 after
 * calling close.//from   w w  w.  ja va 2  s.com
 * <p>
 * Additional Readers may be added and this GroupReader may continue to be
 * used after this method has been called.
 *
 * @throws IOException if any {@code Reader} contained by this GroupReader
 * throws an exception while being closed.
 */
@Override
public void close() throws IOException {
    if (current != null) {
        Closer closer = Closer.create();
        closer.register(current);
        current = null;
        if (readers != null && !readers.isEmpty()) {
            for (Reader reader : readers) {
                closer.register(reader);
            }
            readers.clear();
        }
        closer.close();
    }
}

From source file:se.sics.kompics.network.netty.serialization.JavaSerializer.java

@Override
public Object fromBinary(ByteBuf buf, Optional<Class> hint) {
    // Ignore hint
    try {/*  www. j av  a  2s  . com*/
        Closer closer = Closer.create();
        try {
            ByteBufInputStream bbis = closer.register(new ByteBufInputStream(buf));
            CompactObjectInputStream cois = closer.register(new CompactObjectInputStream(bbis, resolver));
            return cois.readObject();
        } catch (Throwable e) {
            throw closer.rethrow(e);
        } finally {
            closer.close();
        }
    } catch (IOException ex) {
        Serializers.LOG.error("JavaSerializer: Could not deserialize object", ex);
        return null;
    }
}