Example usage for com.google.common.io ByteSource wrap

List of usage examples for com.google.common.io ByteSource wrap

Introduction

In this page you can find the example usage for com.google.common.io ByteSource wrap.

Prototype

public static ByteSource wrap(byte[] b) 

Source Link

Document

Returns a view of the given byte array as a ByteSource .

Usage

From source file:org.spka.cursus.publish.website.results.ResultsLinksGenerator.java

public ResultsLinksGenerator(FileCache files) throws IOException, ImportException {
    Map<String, String> resultsReverse = new TreeMap<String, String>(new ResultsPageComparator(true));
    Map<String, String> resultsForward = new TreeMap<String, String>(new ResultsPageComparator(false));

    for (Map.Entry<String, ByteSource> file : files.entrySet()) {
        if (file.getKey().startsWith(PREFIX) && file.getKey().endsWith(".xml")) {
            String fileName = Files.getNameWithoutExtension(file.getKey().substring(PREFIX.length()));
            ScoresXMLFile scores = new ScoresXMLFile(file.getValue());
            String seriesName = createSeriesName(scores.getData().getSeries(),
                    scores.getData().getSeriesResults().getScorer());

            if (seriesName != null) {
                resultsReverse.put(seriesName, fileName);
                resultsForward.put(seriesName, fileName);
            }/*w  w w.  ja v a 2s  .c  o  m*/
        }
    }

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(out, Charsets.ISO_8859_1));
    for (Map.Entry<String, String> result : resultsReverse.entrySet()) {
        String seriesName = result.getKey();
        String fileName = result.getValue();

        pw.append("<li>");
        pw.append("<a href=\"/results/").append(HTML.escape(URL_PATH.escape(fileName + "s1.xml")))
                .append("\">");
        pw.append(ENTITY.escape(HTML.escape(seriesName))).append("</a>");
        pw.append(" (<a href=\"/results/").append(HTML.escape(URL_PATH.escape(fileName + "a.xml")))
                .append("\">print</a>");
        pw.append(" | <a href=\"/results/").append(HTML.escape(URL_PATH.escape(fileName + "t.xml")))
                .append("#s1\">tabs</a>)");
        pw.println("</li>");
    }
    pw.flush();
    out.close();
    pages.put(Constants.RESULTS_FILE, ByteSource.wrap(out.toByteArray()));

    out = new ByteArrayOutputStream();
    pw = new PrintWriter(new OutputStreamWriter(out, Charsets.UTF_8));
    pw.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
    pw.println("<div id=\"footer\">");
    pw.println("\t<hr/>");
    pw.println(
            "\t<p><a href=\"/\" title=\"Scottish Power Kite Association\"><img src=\"/_images/spkalogo.gif\" alt=\"SPKA\"/><img src=\"/_images/activities.gif\" alt=\"\"/></a></p>");
    pw.println("\t<ul class=\"menu\">");
    for (Map.Entry<String, String> result : resultsForward.entrySet()) {
        String seriesName = result.getKey();
        String fileName = result.getValue();

        pw.append("\t\t<li> <a href=\"").append(XML_ATTRIBUTE.escape(URL_PATH.escape(fileName + "s1.xml")))
                .append("\">");
        pw.append(ENTITY.escape(XML_CONTENT.escape(seriesName))).append("</a> </li>");
    }
    pw.println("\t</ul>");
    pw.println("</div>");
    pw.flush();
    out.close();
    pages.put(Constants.RESULTS_DIR + "/footer.xml", ByteSource.wrap(out.toByteArray()));
}

From source file:org.jclouds.azurecompute.suppliers.KeyStoreSupplier.java

@Override
public KeyStore get() {
    Credentials currentCreds = checkNotNull(creds.get(), "credential supplier returned null");
    String cert = checkNotNull(currentCreds.identity,
            "credential supplier returned null identity (should be cert)");
    String keyStorePassword = checkNotNull(currentCreds.credential,
            "credential supplier returned null credential (should be keyStorePassword)");
    try {//from  w  w w.  j  av a 2 s  .  c  o m
        KeyStore keyStore = KeyStore.getInstance("PKCS12");

        File certFile = new File(checkNotNull(cert));
        if (certFile.isFile()) { // cert is path to pkcs12 file
            FileInputStream stream = new FileInputStream(certFile);
            try {
                keyStore.load(stream, keyStorePassword.toCharArray());
            } finally {
                stream.close();
            }
        } else { // cert is PEM encoded, containing private key and certs

            // split in private key and certs
            int privateKeyBeginIdx = cert.indexOf("-----BEGIN PRIVATE KEY");
            int privateKeyEndIdx = cert.indexOf("-----END PRIVATE KEY");
            String pemPrivateKey = cert.substring(privateKeyBeginIdx, privateKeyEndIdx + 26);

            StringBuilder pemCerts = new StringBuilder();
            int certsBeginIdx = 0;

            do {
                certsBeginIdx = cert.indexOf("-----BEGIN CERTIFICATE", certsBeginIdx);

                if (certsBeginIdx >= 0) {
                    int certsEndIdx = cert.indexOf("-----END CERTIFICATE", certsBeginIdx) + 26;
                    pemCerts.append(cert.substring(certsBeginIdx, certsEndIdx));
                    certsBeginIdx = certsEndIdx;
                }
            } while (certsBeginIdx != -1);

            // parse private key
            KeySpec keySpec = Pems.privateKeySpec(ByteSource.wrap(pemPrivateKey.getBytes(Charsets.UTF_8)));
            PrivateKey privateKey = crypto.rsaKeyFactory().generatePrivate(keySpec);

            // populate keystore with private key and certs
            CertificateFactory cf = CertificateFactory.getInstance("X.509");
            @SuppressWarnings("unchecked")
            Collection<Certificate> certs = (Collection<Certificate>) cf.generateCertificates(
                    new ByteArrayInputStream(pemCerts.toString().getBytes(Charsets.UTF_8)));
            keyStore.load(null);
            keyStore.setKeyEntry("dummy", privateKey, keyStorePassword.toCharArray(),
                    certs.toArray(new java.security.cert.Certificate[0]));

        }
        return keyStore;
    } catch (NoSuchAlgorithmException e) {
        throw propagate(e);
    } catch (KeyStoreException e) {
        throw propagate(e);
    } catch (CertificateException e) {
        throw propagate(e);
    } catch (FileNotFoundException e) {
        throw propagate(e);
    } catch (IOException e) {
        throw propagate(e);
    } catch (InvalidKeySpecException e) {
        throw propagate(e);
    }
}

From source file:org.gaul.s3proxy.NullBlobStore.java

@Override
public String putBlob(String containerName, Blob blob, PutOptions options) {
    long length;//w w  w . j  av  a  2s.  com
    try (InputStream is = blob.getPayload().openStream()) {
        length = ByteStreams.copy(is, ByteStreams.nullOutputStream());
    } catch (IOException ioe) {
        throw new RuntimeException(ioe);
    }

    byte[] array = Longs.toByteArray(length);
    ByteSourcePayload payload = new ByteSourcePayload(ByteSource.wrap(array));
    payload.setContentMetadata(blob.getPayload().getContentMetadata());
    payload.getContentMetadata().setContentLength((long) array.length);
    payload.getContentMetadata().setContentMD5((HashCode) null);
    blob.setPayload(payload);

    return super.putBlob(containerName, blob, options);
}

From source file:org.jclouds.examples.rackspace.cloudfiles.GenerateTempURL.java

private void generatePutTempURL() throws IOException {
    System.out.format("Generate PUT Temp URL%n");

    // Create the Payload
    String data = "This object will be public for 10 minutes.";
    ByteSource source = ByteSource.wrap(data.getBytes());
    Payload payload = Payloads.newByteSourcePayload(source);

    // Create the Blob
    Blob blob = blobStore.blobBuilder(FILENAME).payload(payload).contentType("text/plain").build();
    HttpRequest request = blobStoreContext.getSigner(REGION).signPutBlob(CONTAINER, blob, TEN_MINUTES);

    System.out.format("  %s %s%n", request.getMethod(), request.getEndpoint());

    // PUT the file using jclouds
    HttpResponse response = blobStoreContext.utils().http().invoke(request);
    int statusCode = response.getStatusCode();

    if (statusCode >= 200 && statusCode < 299) {
        System.out.format("  PUT Success (%s)%n", statusCode);
    } else {/*w w  w . j  av  a2  s. c  o m*/
        throw new HttpResponseException(null, response);
    }
}

From source file:org.jclouds.examples.rackspace.cloudfiles.UploadObjectsWithServiceNet.java

/**
 * Upload an object from a String with metadata using the BlobStore API.
 *///from   ww  w . j  av a2  s.c om
private void uploadObjectFromStringWithMetadata() {
    System.out.format("Upload Object From String With Metadata%n");

    String filename = "uploadObjectFromStringWithMetadata.txt";

    Map<String, String> userMetadata = new HashMap<String, String>();
    userMetadata.put("key1", "value1");

    ByteSource source = ByteSource.wrap("uploadObjectFromString".getBytes());

    Blob blob = blobStore.blobBuilder(filename).payload(Payloads.newByteSourcePayload(source))
            .userMetadata(userMetadata).build();

    blobStore.putBlob(CONTAINER, blob);

    System.out.format("  %s%n", filename);
}

From source file:org.gaul.s3proxy.NullBlobStore.java

@Override
public String completeMultipartUpload(final MultipartUpload mpu, final List<MultipartPart> parts) {
    long length = 0;
    for (MultipartPart part : parts) {
        length += part.partSize();//from   w ww. ja  v a2 s . co m
    }

    byte[] array = Longs.toByteArray(length);
    ByteSourcePayload payload = new ByteSourcePayload(ByteSource.wrap(array));

    super.abortMultipartUpload(mpu);

    MultipartPart part = delegate().uploadMultipartPart(mpu, 1, payload);

    return delegate().completeMultipartUpload(mpu, ImmutableList.of(part));
}

From source file:org.dcache.chimera.namespace.ExtendedInode.java

public ImmutableList<String> getTag(String tag) {
    try {//from w w  w  .  ja v a2  s .  c om
        byte[] data = getTags().get(tag);
        if (data == null || data.length == 0) {
            return ImmutableList.of();
        }
        return ByteSource.wrap(data).asCharSource(Charsets.UTF_8).readLines();
    } catch (IOException e) {
        throw Throwables.propagate(e);
    }
}

From source file:google.registry.tmch.NordnVerifyAction.java

/**
 * Fetch LORDN log file from MarksDB to confirm successful upload.
 *
 * <p>Idempotency: The confirmation URL will always return the same result once it becomes
 * available.//from ww w .j a  va 2 s.  co  m
 *
 * @throws ConflictException if MarksDB has not yet finished processing the LORDN upload
 * @see <a href="http://tools.ietf.org/html/draft-lozano-tmch-func-spec-08#section-6.3.1">
 *     TMCH functional specifications LORDN Log File</a>
 */
@VisibleForTesting
LordnLog verify() throws IOException {
    if (csvData.isEmpty()) {
        throw new BadRequestException(String.format("LORDN verify task %s: Missing CSV payload.", actionLogId));
    }
    logger.infofmt("LORDN verify task %s: Sending request to URL %s.", actionLogId, url);
    HTTPRequest req = new HTTPRequest(url, GET, validateCertificate().setDeadline(60d));
    lordnRequestInitializer.initialize(req, tld);
    HTTPResponse rsp = fetchService.fetch(req);
    logger.infofmt("LORDN verify task %s response: HTTP response code %d, response data: %s", actionLogId,
            rsp.getResponseCode(), rsp.getContent());
    if (rsp.getResponseCode() == SC_NO_CONTENT) {
        // Send a 400+ status code so App Engine will retry the task.
        throw new ConflictException("Not ready");
    }
    if (rsp.getResponseCode() != SC_OK) {
        throw new UrlFetchException(
                String.format("LORDN verify task %s: Failed to verify LORDN upload to MarksDB.", actionLogId),
                req, rsp);
    }
    LordnLog log = LordnLog.parse(ByteSource.wrap(rsp.getContent()).asCharSource(UTF_8).readLines());
    if (log.getStatus() == LordnLog.Status.ACCEPTED) {
        logger.infofmt("LORDN verify task %s: Upload accepted", actionLogId);
    } else {
        logger.severefmt("LORDN verify task %s: Upload rejected with reason: %s", actionLogId, log);
    }
    for (Entry<String, LordnLog.Result> result : log) {
        switch (result.getValue().getOutcome()) {
        case OK:
            break;
        case WARNING:
            // fall through
        case ERROR:
            logger.warning(result.toString());
            break;
        default:
            logger.warningfmt("LORDN verify task %s: Unexpected outcome: %s", actionLogId, result.toString());
            break;
        }
    }
    return log;
}

From source file:org.codice.alliance.video.stream.mpegts.netty.RawUdpDataToMTSPacketDecoder.java

@Override
protected void decode(ChannelHandlerContext ctx, DatagramPacket msg, List<Object> outputList) throws Exception {

    notNull(ctx, "ctx must be non-null");
    notNull(msg, "msg must be non-null");
    notNull(outputList, "outputList must be non-null");

    checkSecuritySubject(msg);//  w ww.  j a v  a 2s.c  o  m

    byteBuf.writeBytes(msg.content());

    skipToSyncByte();

    while (byteBuf.readableBytes() >= TS_PACKET_SIZE) {

        byte[] payload = new byte[TS_PACKET_SIZE];

        byteBuf.readBytes(payload);

        ResettableMTSSource src = mtsParser.parse(ByteSource.wrap(payload));

        MTSPacket packet = null;
        try {
            packet = src.nextPacket();
        } catch (IOException e) {
            LOGGER.warn("unable to parse mpegst packet", e);
        }

        if (packet != null) {
            packetBuffer.write(payload);
            outputList.add(packet);
        }

        skipToSyncByte();
    }

    byteBuf.discardReadBytes();

}

From source file:google.registry.tmch.Marksdb.java

List<String> fetchSignedCsv(Optional<String> login, String csvPath, String sigPath)
        throws IOException, SignatureException, PGPException {
    byte[] csv = fetch(new URL(tmchMarksdbUrl + csvPath), login);
    byte[] sig = fetch(new URL(tmchMarksdbUrl + sigPath), login);
    pgpVerifySignature(csv, sig, marksdbPublicKey);
    return ByteSource.wrap(csv).asCharSource(US_ASCII).readLines();
}