From a81374f546e75f5573e846b0df9d769921d1124f Mon Sep 17 00:00:00 2001 From: Henning Schmiedehausen Date: Fri, 14 Nov 2014 13:49:50 -0800 Subject: [PATCH] Update to airline release and guava 18.0 --- .../agent/DirectoryDeploymentManager.java | 4 +-- .../agent/TestLauncherLifecycleManager.java | 5 +-- .../airship/configbundler/GitUtils.java | 16 +++++----- .../airlift/airship/configbundler/Model.java | 13 +++----- .../airship/configbundler/ReleaseCommand.java | 5 ++- .../configbundler/SnapshotCommand.java | 5 ++- .../airship/configbundler/ZipGenerator.java | 7 ++-- .../airship/configbundler/ZipPackager.java | 10 +++--- .../airship/coordinator/BinaryResource.java | 2 +- .../airship/coordinator/HttpRepository.java | 9 +++--- .../coordinator/HttpServiceInventory.java | 11 +++---- .../InputSupplierStreamingOutput.java | 12 +++---- .../airship/coordinator/MavenRepository.java | 16 +++++----- .../auth/S3AuthorizedKeyStore.java | 18 +++++------ .../coordinator/auth/ssh/PemDecoder.java | 5 ++- .../coordinator/TestingMavenRepository.java | 7 ++-- .../airlift/airship/shared/ConfigUtils.java | 32 +++++++++---------- .../airlift/airship/shared/DigestUtils.java | 6 ++-- .../airship/shared/InstallationUtils.java | 7 ++-- .../airlift/airship/shared/ArchiveHelper.java | 5 +-- pom.xml | 3 +- 21 files changed, 94 insertions(+), 104 deletions(-) diff --git a/airship-agent/src/main/java/io/airlift/airship/agent/DirectoryDeploymentManager.java b/airship-agent/src/main/java/io/airlift/airship/agent/DirectoryDeploymentManager.java index f7c10d12..1c752432 100644 --- a/airship-agent/src/main/java/io/airlift/airship/agent/DirectoryDeploymentManager.java +++ b/airship-agent/src/main/java/io/airlift/airship/agent/DirectoryDeploymentManager.java @@ -130,7 +130,7 @@ public Deployment install(Installation installation) // download the binary File binary = new File(tempDir, "airship-binary.tar.gz"); try { - Files.copy(Resources.newInputStreamSupplier(installation.getBinaryFile().toURL()), binary); + Resources.asByteSource(installation.getBinaryFile().toURL()).copyTo(Files.asByteSink(binary)); } catch (IOException e) { throw new RuntimeException("Unable to download binary " + assignment.getBinary() + " from " + installation.getBinaryFile(), e); @@ -156,7 +156,7 @@ public Deployment install(Installation installation) // unpack config bundle try { URL url = installation.getConfigFile().toURL(); - ConfigUtils.unpackConfig(Resources.newInputStreamSupplier(url), binaryRootDir); + ConfigUtils.unpackConfig(Resources.asByteSource(url), binaryRootDir); } catch (Exception e) { throw new RuntimeException("Unable to extract config bundle " + assignment.getConfig() + ": " + e.getMessage()); diff --git a/airship-agent/src/test/java/io/airlift/airship/agent/TestLauncherLifecycleManager.java b/airship-agent/src/test/java/io/airlift/airship/agent/TestLauncherLifecycleManager.java index 5e2029ef..2afb54fe 100644 --- a/airship-agent/src/test/java/io/airlift/airship/agent/TestLauncherLifecycleManager.java +++ b/airship-agent/src/test/java/io/airlift/airship/agent/TestLauncherLifecycleManager.java @@ -33,8 +33,9 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; +import static com.google.common.io.Files.asByteSink; import static com.google.common.io.Resources.getResource; -import static com.google.common.io.Resources.newInputStreamSupplier; +import static com.google.common.io.Resources.asByteSource; import static io.airlift.airship.shared.AssignmentHelper.APPLE_ASSIGNMENT; import static io.airlift.airship.shared.AssignmentHelper.BANANA_ASSIGNMENT; import static io.airlift.airship.shared.FileUtils.deleteRecursively; @@ -77,7 +78,7 @@ private Deployment createDeploymentDir(String name, Assignment assignment) // copy launcher script launcher.getParentFile().mkdirs(); - Files.copy(newInputStreamSupplier(getResource(ArchiveHelper.class, "launcher")), launcher); + asByteSource(getResource(ArchiveHelper.class, "launcher")).copyTo(asByteSink(launcher)); launcher.setExecutable(true, true); return new Deployment(UUID.randomUUID(), "location", deploymentDir, dataDir, assignment, ImmutableMap.of("memory", 512)); diff --git a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/GitUtils.java b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/GitUtils.java index 2f9d6622..1b51d71e 100644 --- a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/GitUtils.java +++ b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/GitUtils.java @@ -4,7 +4,7 @@ import com.google.common.base.Preconditions; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableSortedMap; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Ref; @@ -20,7 +20,7 @@ import java.io.InputStream; import java.util.Map; -import static com.google.common.base.Objects.firstNonNull; +import static com.google.common.base.MoreObjects.firstNonNull; class GitUtils { @@ -44,14 +44,14 @@ public static RevCommit getCommit(Repository repository, Ref ref) } } - public static InputSupplier getBlob(final Repository repository, final ObjectId objectId) + public static ByteSource getBlob(final Repository repository, final ObjectId objectId) { Preconditions.checkArgument(repository.hasObject(objectId), "object id '%s' not found in git repository", objectId.getName()); - return new InputSupplier() + return new ByteSource() { @Override - public InputStream getInput() + public InputStream openStream() throws IOException { return repository.open(objectId).openStream(); @@ -92,11 +92,11 @@ public static ObjectId findFileObject(Repository repository, RevCommit commit, S return null; } - public static Function> inputStreamSupplierFunction(final Repository repository) + public static Function byteSourceFunction(final Repository repository) { - return new Function>() + return new Function() { - public InputSupplier apply(ObjectId input) + public ByteSource apply(ObjectId input) { return getBlob(repository, input); } diff --git a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/Model.java b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/Model.java index c029a653..594a6b86 100644 --- a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/Model.java +++ b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/Model.java @@ -4,9 +4,8 @@ import com.google.common.base.Predicate; import com.google.common.collect.Maps; import com.google.common.collect.Ordering; -import com.google.common.io.CharStreams; +import com.google.common.io.ByteSource; import com.google.common.io.Files; -import com.google.common.io.InputSupplier; import com.google.common.primitives.Ints; import io.airlift.json.JsonCodec; import org.eclipse.jgit.api.Git; @@ -27,15 +26,13 @@ import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.util.Comparator; import java.util.Map; import static com.google.common.base.Charsets.UTF_8; -import static com.google.common.io.CharStreams.newReaderSupplier; +import static io.airlift.airship.configbundler.GitUtils.byteSourceFunction; import static io.airlift.airship.configbundler.GitUtils.getBlob; import static io.airlift.airship.configbundler.GitUtils.getBranch; -import static io.airlift.airship.configbundler.GitUtils.inputStreamSupplierFunction; class Model { @@ -60,7 +57,7 @@ public Metadata readMetadata() ObjectId objectId = GitUtils.findFileObject(repository, head, METADATA_FILE); - String json = CharStreams.toString(newReaderSupplier(getBlob(repository, objectId), UTF_8)); + String json = getBlob(repository, objectId).asCharSource(UTF_8).read(); Metadata metadata = JsonCodec.jsonCodec(Metadata.class).fromJson(json); Preconditions.checkNotNull(metadata, ".metadata file not found in master branch"); @@ -151,7 +148,7 @@ public void activateBundle(Bundle bundle) git.checkout().setName(bundle.getName()).call(); } - public Map> getEntries(Bundle bundle) + public Map getEntries(Bundle bundle) throws IOException { Ref ref; @@ -166,7 +163,7 @@ public Map> getEntries(Bundle bundle) RevCommit commit = GitUtils.getCommit(git.getRepository(), ref); - return Maps.transformValues(GitUtils.getEntries(git.getRepository(), commit.getTree()), inputStreamSupplierFunction(git.getRepository())); + return Maps.transformValues(GitUtils.getEntries(git.getRepository(), commit.getTree()), byteSourceFunction(git.getRepository())); } public Bundle createNewVersion(Bundle bundle) diff --git a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ReleaseCommand.java b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ReleaseCommand.java index cfb469f0..daed761b 100644 --- a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ReleaseCommand.java +++ b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ReleaseCommand.java @@ -1,14 +1,13 @@ package io.airlift.airship.configbundler; import com.google.common.base.Preconditions; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import io.airlift.airline.Arguments; import io.airlift.airline.Command; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.lib.RepositoryBuilder; import org.eclipse.jgit.util.FS; -import java.io.InputStream; import java.util.Map; import java.util.concurrent.Callable; @@ -61,7 +60,7 @@ public Void call() } // get entries from tag - final Map> entries = model.getEntries(bundle); + final Map entries = model.getEntries(bundle); if (entries.isEmpty()) { throw new RuntimeException("Cannot build an empty config package"); diff --git a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/SnapshotCommand.java b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/SnapshotCommand.java index cfd09112..219c23e6 100644 --- a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/SnapshotCommand.java +++ b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/SnapshotCommand.java @@ -1,14 +1,13 @@ package io.airlift.airship.configbundler; import com.google.common.base.Preconditions; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import io.airlift.airline.Arguments; import io.airlift.airline.Command; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.lib.RepositoryBuilder; import org.eclipse.jgit.util.FS; -import java.io.InputStream; import java.util.Map; import java.util.concurrent.Callable; @@ -45,7 +44,7 @@ public Void call() Preconditions.checkState(bundle.isSnapshot(), "There are not pending changes for bundle %s. Use released version %s:%s instead", bundle.getName(), bundle.getName(), bundle.getVersionString()); - final Map> entries = model.getEntries(bundle); + final Map entries = model.getEntries(bundle); if (entries.isEmpty()) { throw new RuntimeException("Cannot build an empty config package"); diff --git a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipGenerator.java b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipGenerator.java index 46c25d9e..fa5503ac 100644 --- a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipGenerator.java +++ b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipGenerator.java @@ -1,18 +1,17 @@ package io.airlift.airship.configbundler; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.util.Map; class ZipGenerator implements Generator { - private final Map> entries; + private final Map entries; - public ZipGenerator(Map> entries) + public ZipGenerator(Map entries) { this.entries = entries; } diff --git a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipPackager.java b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipPackager.java index 97baa53a..2ec17c94 100644 --- a/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipPackager.java +++ b/airship-config-bundler/src/main/java/io/airlift/airship/configbundler/ZipPackager.java @@ -1,10 +1,8 @@ package io.airlift.airship.configbundler; -import com.google.common.io.ByteStreams; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.util.Map; import java.util.zip.ZipEntry; @@ -12,16 +10,16 @@ class ZipPackager { - public static void packageEntries(OutputStream output, Map> entries) + public static void packageEntries(OutputStream output, Map entries) throws IOException { ZipOutputStream out = new ZipOutputStream(output); - for (Map.Entry> entry : entries.entrySet()) { + for (Map.Entry entry : entries.entrySet()) { String path = entry.getKey(); ZipEntry fileEntry = new ZipEntry(path); out.putNextEntry(fileEntry); - ByteStreams.copy(entry.getValue(), out); + entry.getValue().copyTo(out); } out.finish(); } diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/BinaryResource.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/BinaryResource.java index 4fc3833c..d5a6cb9f 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/BinaryResource.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/BinaryResource.java @@ -56,6 +56,6 @@ public Response getBinary(@PathParam("groupId") String groupId, return Response.status(Status.NOT_FOUND).build(); } - return Response.ok(new InputSupplierStreamingOutput(Resources.newInputStreamSupplier(binaryUrl))).build(); + return Response.ok(new InputSupplierStreamingOutput(Resources.asByteSource(binaryUrl))).build(); } } diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpRepository.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpRepository.java index 67a2810b..534c429e 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpRepository.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpRepository.java @@ -5,15 +5,14 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.io.ByteProcessor; -import com.google.common.io.ByteStreams; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import com.google.common.io.Resources; + import io.airlift.airship.shared.Repository; import javax.annotation.Nullable; import javax.inject.Inject; -import java.io.InputStream; import java.net.URI; import java.util.List; import java.util.Set; @@ -299,8 +298,8 @@ private URI toHttpUri(String path, String defaultExtension) private boolean isValidLocation(URI uri) { try { - InputSupplier inputSupplier = Resources.newInputStreamSupplier(uri.toURL()); - ByteStreams.readBytes(inputSupplier, new ByteProcessor() + ByteSource byteSource = Resources.asByteSource(uri.toURL()); + byteSource.read(new ByteProcessor() { private int count; diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpServiceInventory.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpServiceInventory.java index c4ea873b..70aa505a 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpServiceInventory.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/HttpServiceInventory.java @@ -17,10 +17,10 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.io.CharStreams; +import com.google.common.io.ByteSource; import com.google.common.io.Files; -import com.google.common.io.InputSupplier; import com.google.inject.Inject; + import io.airlift.airship.shared.Assignment; import io.airlift.airship.shared.ConfigUtils; import io.airlift.airship.shared.DigestUtils; @@ -34,7 +34,6 @@ import java.io.File; import java.io.FileNotFoundException; -import java.io.InputStream; import java.util.Collections; import java.util.List; import java.util.Map; @@ -119,7 +118,7 @@ private List getServiceInventory(SlotStatus slotStatus) File cacheFile = getCacheFile(config); if (cacheFile.canRead()) { try { - String json = CharStreams.toString(Files.newReaderSupplier(cacheFile, Charsets.UTF_8)); + String json = Files.asCharSource(cacheFile, Charsets.UTF_8).read(); List descriptors = descriptorsJsonCodec.fromJson(json); invalidServiceInventory.remove(config); return descriptors; @@ -130,7 +129,7 @@ private List getServiceInventory(SlotStatus slotStatus) } } - InputSupplier configFile = ConfigUtils.newConfigEntrySupplier(repository, config, "airship-service-inventory.json"); + ByteSource configFile = ConfigUtils.newConfigEntrySupplier(repository, config, "airship-service-inventory.json"); if (configFile == null) { return null; } @@ -138,7 +137,7 @@ private List getServiceInventory(SlotStatus slotStatus) try { String json; try { - json = CharStreams.toString(CharStreams.newReaderSupplier(configFile, Charsets.UTF_8)); + json = configFile.asCharSource(Charsets.UTF_8).read(); } catch (FileNotFoundException e) { // no service inventory in the config, so replace with json null so caching works diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/InputSupplierStreamingOutput.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/InputSupplierStreamingOutput.java index b45838e4..79fccb89 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/InputSupplierStreamingOutput.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/InputSupplierStreamingOutput.java @@ -1,28 +1,26 @@ package io.airlift.airship.coordinator; -import com.google.common.io.ByteStreams; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.StreamingOutput; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; class InputSupplierStreamingOutput implements StreamingOutput { - private final InputSupplier inputSupplier; + private final ByteSource byteSource; - public InputSupplierStreamingOutput(InputSupplier inputSupplier) + public InputSupplierStreamingOutput(ByteSource byteSource) { - this.inputSupplier = inputSupplier; + this.byteSource = byteSource; } public void write(OutputStream output) throws IOException, WebApplicationException { - ByteStreams.copy(inputSupplier, output); + byteSource.copyTo(output); } } diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/MavenRepository.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/MavenRepository.java index 2a6f1772..5f237f5b 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/MavenRepository.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/MavenRepository.java @@ -5,9 +5,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList.Builder; import com.google.common.io.ByteProcessor; -import com.google.common.io.ByteStreams; -import com.google.common.io.CharStreams; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; +import com.google.common.io.CharSource; import com.google.common.io.Resources; import com.google.inject.Inject; import io.airlift.airship.coordinator.MavenMetadata.SnapshotVersion; @@ -20,6 +19,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.Reader; import java.net.HttpURLConnection; import java.net.URI; import java.net.URL; @@ -394,10 +394,10 @@ private String toString(URI uri) throws IOException { final URL url = uri.toURL(); - return CharStreams.toString(new InputSupplier() + return new CharSource() { @Override - public InputStreamReader getInput() + public Reader openStream() throws IOException { URLConnection connection = url.openConnection(); @@ -408,15 +408,15 @@ public InputStreamReader getInput() InputStream in = connection.getInputStream(); return new InputStreamReader(in, UTF_8); } - }); + }.read(); } private boolean isValidBinary(URI uri) { log.debug("validating URI: %s", uri); try { - InputSupplier inputSupplier = Resources.newInputStreamSupplier(uri.toURL()); - ByteStreams.readBytes(inputSupplier, new ByteProcessor() + ByteSource byteSource = Resources.asByteSource(uri.toURL()); + byteSource.read(new ByteProcessor() { private int count; diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/S3AuthorizedKeyStore.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/S3AuthorizedKeyStore.java index 3eeb9f53..795b04ba 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/S3AuthorizedKeyStore.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/S3AuthorizedKeyStore.java @@ -6,14 +6,13 @@ import com.amazonaws.services.s3.model.S3Object; import com.amazonaws.services.s3.model.S3ObjectSummary; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Charsets; import com.google.common.base.Function; import com.google.common.collect.AbstractSequentialIterator; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterators; -import com.google.common.io.CharStreams; -import com.google.common.io.InputSupplier; +import com.google.common.io.CharSource; import com.google.common.util.concurrent.ThreadFactoryBuilder; + import io.airlift.airship.coordinator.AwsProvisionerConfig; import io.airlift.units.Duration; @@ -22,7 +21,9 @@ import javax.inject.Inject; import java.io.IOException; -import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -33,7 +34,6 @@ import java.util.concurrent.atomic.AtomicReference; import static com.google.common.collect.Lists.newArrayList; -import static com.google.common.io.CharStreams.newReaderSupplier; public class S3AuthorizedKeyStore implements AuthorizedKeyStore @@ -134,7 +134,7 @@ synchronized Map refreshKeys() } List keys = newArrayList(); - for (String line : CharStreams.readLines(newReaderSupplier(new S3InputSupplier(s3Client, bucketName, objectSummary.getKey()), Charsets.UTF_8))) { + for (String line : new S3InputSupplier(s3Client, bucketName, objectSummary.getKey()).readLines()) { line = line.trim(); if (!line.isEmpty()) { PublicKey key = PublicKey.valueOf(line); @@ -232,7 +232,7 @@ public Iterator apply(ObjectListing input) } private static class S3InputSupplier - implements InputSupplier + extends CharSource { private final AmazonS3 s3Client; private final String bucketName; @@ -246,11 +246,11 @@ public S3InputSupplier(AmazonS3 s3Client, String bucketName, String key) } @Override - public InputStream getInput() + public Reader openStream() throws IOException { S3Object object = s3Client.getObject(bucketName, key); - return object.getObjectContent(); + return new InputStreamReader(object.getObjectContent(), StandardCharsets.UTF_8); } } } diff --git a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/ssh/PemDecoder.java b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/ssh/PemDecoder.java index 5772e6e9..9bd311d2 100644 --- a/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/ssh/PemDecoder.java +++ b/airship-coordinator/src/main/java/io/airlift/airship/coordinator/auth/ssh/PemDecoder.java @@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ListMultimap; import com.google.common.collect.PeekingIterator; +import com.google.common.io.CharSource; import java.io.IOException; import java.math.BigInteger; @@ -15,8 +16,6 @@ import static com.google.common.collect.ImmutableList.copyOf; import static com.google.common.collect.Iterators.peekingIterator; -import static com.google.common.io.CharStreams.newReaderSupplier; -import static com.google.common.io.CharStreams.readLines; import static org.apache.commons.codec.binary.Base64.decodeBase64; public class PemDecoder @@ -72,7 +71,7 @@ else if (pem.getType().equals("RSA PRIVATE KEY")) { public static Pem parsePem(String pemData) throws IOException { - List lines = readLines(newReaderSupplier(pemData)); + List lines = CharSource.wrap(pemData).readLines(); for (PeekingIterator iterator = peekingIterator(lines.iterator()); iterator.hasNext(); ) { String line = iterator.next().trim(); if (line.isEmpty()) { diff --git a/airship-coordinator/src/test/java/io/airlift/airship/coordinator/TestingMavenRepository.java b/airship-coordinator/src/test/java/io/airlift/airship/coordinator/TestingMavenRepository.java index e52487d3..98ebb28c 100644 --- a/airship-coordinator/src/test/java/io/airlift/airship/coordinator/TestingMavenRepository.java +++ b/airship-coordinator/src/test/java/io/airlift/airship/coordinator/TestingMavenRepository.java @@ -16,8 +16,9 @@ import static com.google.common.base.Charsets.UTF_8; import static com.google.common.base.Objects.firstNonNull; +import static com.google.common.io.Files.asByteSink; import static com.google.common.io.Resources.getResource; -import static com.google.common.io.Resources.newInputStreamSupplier; +import static com.google.common.io.Resources.asByteSource; import static io.airlift.airship.shared.ArchiveHelper.createArchive; import static io.airlift.airship.shared.FileUtils.createTempDir; import static io.airlift.airship.shared.FileUtils.deleteRecursively; @@ -162,11 +163,11 @@ public static File createBinaryRepoDir() // copy maven-metadata.xml files File appleMavenMetadata = new File(targetRepo, "food/fruit/apple/maven-metadata.xml"); appleMavenMetadata.getParentFile().mkdirs(); - Files.copy(newInputStreamSupplier(getResource(TestingMavenRepository.class, "apple-maven-metadata.xml")), appleMavenMetadata); + asByteSource(getResource(TestingMavenRepository.class, "apple-maven-metadata.xml")).copyTo(asByteSink(appleMavenMetadata)); File bananaMavenMetadata = new File(targetRepo, "food/fruit/banana/2.0-SNAPSHOT/maven-metadata.xml"); bananaMavenMetadata.getParentFile().mkdirs(); - Files.copy(newInputStreamSupplier(getResource(TestingMavenRepository.class, "banana-maven-metadata.xml")), bananaMavenMetadata); + asByteSource(getResource(TestingMavenRepository.class, "banana-maven-metadata.xml")).copyTo(asByteSink(bananaMavenMetadata)); // tar up the archive and add them to the repository File appleArchiveV1 = new File(targetRepo, "food/fruit/apple/1.0/apple-1.0.tar.gz"); diff --git a/airship-shared/src/main/java/io/airlift/airship/shared/ConfigUtils.java b/airship-shared/src/main/java/io/airlift/airship/shared/ConfigUtils.java index 5f4431b5..a142f332 100644 --- a/airship-shared/src/main/java/io/airlift/airship/shared/ConfigUtils.java +++ b/airship-shared/src/main/java/io/airlift/airship/shared/ConfigUtils.java @@ -2,10 +2,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.io.ByteStreams; +import com.google.common.io.ByteSource; import com.google.common.io.Files; -import com.google.common.io.InputSupplier; import com.google.common.io.Resources; + import io.airlift.configuration.ConfigurationFactory; import java.io.BufferedInputStream; @@ -106,10 +106,10 @@ private static void listFilesRecursive(String path, LinkedHashMap } } - public static void unpackConfig(InputSupplier inputSupplier, File outputDir) + public static void unpackConfig(ByteSource inputSupplier, File outputDir) throws IOException { - ZipInputStream in = new ZipInputStream(inputSupplier.getInput()); + ZipInputStream in = new ZipInputStream(inputSupplier.openStream()); try { for (ZipEntry zipEntry = in.getNextEntry(); zipEntry != null; zipEntry = in.getNextEntry()) { File file = new File(outputDir, zipEntry.getName()); @@ -119,7 +119,7 @@ public static void unpackConfig(InputSupplier inputSuppli } else { file.getParentFile().mkdirs(); - ByteStreams.copy(in, Files.newOutputStreamSupplier(file)); + Files.asByteSink(file).writeFrom(in); file.setLastModified(zipEntry.getTime()); } } @@ -129,7 +129,7 @@ public static void unpackConfig(InputSupplier inputSuppli } } - public static InputSupplier newConfigEntrySupplier(Repository repository, String config, final String entryName) + public static ByteSource newConfigEntrySupplier(Repository repository, String config, final String entryName) { URI uri = repository.configToHttpUri(config); if (uri == null) { @@ -144,15 +144,15 @@ public static InputSupplier newConfigEntrySupplier(Repository repos throw new RuntimeException("Invalid config bundle location " + uri); } - return ConfigUtils.newConfigEntrySupplier(Resources.newInputStreamSupplier(configUrl), entryName); + return ConfigUtils.newConfigEntrySupplier(Resources.asByteSource(configUrl), entryName); } - public static InputSupplier newConfigEntrySupplier(final URI configBundle, String entryName) + public static ByteSource newConfigEntrySupplier(final URI configBundle, String entryName) { - InputSupplier configBundleInput = new InputSupplier() + ByteSource configBundleInput = new ByteSource() { @Override - public InputStream getInput() + public InputStream openStream() throws IOException { URL url = configBundle.toURL(); @@ -169,16 +169,16 @@ public InputStream getInput() return newConfigEntrySupplier(configBundleInput, entryName); } - private static InputSupplier newConfigEntrySupplier(final InputSupplier configBundle, final String entryName) + private static ByteSource newConfigEntrySupplier(final ByteSource configBundle, final String entryName) { - return new InputSupplier() + return new ByteSource() { @Override - public InputStream getInput() + public InputStream openStream() throws IOException { boolean success = false; - ZipInputStream in = new ZipInputStream(configBundle.getInput()); + ZipInputStream in = new ZipInputStream(configBundle.openStream()); try { ZipEntry zipEntry = in.getNextEntry(); while (zipEntry != null && !zipEntry.getName().equals(entryName)) { @@ -220,11 +220,11 @@ public static ConfigurationFactory createConfigurationFactory(Repository reposit } } - private static Properties loadProperties(InputSupplier inputSupplier) + private static Properties loadProperties(ByteSource inputSupplier) throws IOException { Properties properties = new Properties(); - try (InputStream input = inputSupplier.getInput()) { + try (InputStream input = inputSupplier.openStream()) { properties.load(input); } return properties; diff --git a/airship-shared/src/main/java/io/airlift/airship/shared/DigestUtils.java b/airship-shared/src/main/java/io/airlift/airship/shared/DigestUtils.java index 2699dc7b..7261e1ef 100644 --- a/airship-shared/src/main/java/io/airlift/airship/shared/DigestUtils.java +++ b/airship-shared/src/main/java/io/airlift/airship/shared/DigestUtils.java @@ -1,9 +1,9 @@ package io.airlift.airship.shared; -import com.google.common.base.Charsets; +import java.nio.charset.StandardCharsets; + import com.google.common.base.Throwables; import com.google.common.hash.Hashing; -import com.google.common.io.ByteStreams; public class DigestUtils { @@ -12,7 +12,7 @@ public class DigestUtils public static String md5Hex(String data) { try { - byte[] digest = ByteStreams.hash(ByteStreams.newInputStreamSupplier(data.getBytes(Charsets.UTF_8)), Hashing.md5()).asBytes(); + byte[] digest = Hashing.md5().hashString(data, StandardCharsets.UTF_8).asBytes(); return toHex(digest); } catch (Exception e) { diff --git a/airship-shared/src/main/java/io/airlift/airship/shared/InstallationUtils.java b/airship-shared/src/main/java/io/airlift/airship/shared/InstallationUtils.java index 287fcb80..7cccac7b 100644 --- a/airship-shared/src/main/java/io/airlift/airship/shared/InstallationUtils.java +++ b/airship-shared/src/main/java/io/airlift/airship/shared/InstallationUtils.java @@ -3,10 +3,9 @@ import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; -import com.google.common.io.InputSupplier; +import com.google.common.io.ByteSource; import java.io.IOException; -import java.io.InputStream; import java.net.URI; import java.util.Map; import java.util.Map.Entry; @@ -77,11 +76,11 @@ public static Map readResources(Repository repository, Assignme { ImmutableMap.Builder builder = ImmutableMap.builder(); - InputSupplier resourcesFile = newConfigEntrySupplier(repository, assignment.getConfig(), "airship-resources.properties"); + ByteSource resourcesFile = newConfigEntrySupplier(repository, assignment.getConfig(), "airship-resources.properties"); if (resourcesFile != null) { try { Properties resources = new Properties(); - resources.load(resourcesFile.getInput()); + resources.load(resourcesFile.openStream()); for (Entry entry : resources.entrySet()) { builder.put((String) entry.getKey(), Integer.valueOf((String) entry.getValue())); } diff --git a/airship-shared/src/test/java/io/airlift/airship/shared/ArchiveHelper.java b/airship-shared/src/test/java/io/airlift/airship/shared/ArchiveHelper.java index 4587301a..4c379ad0 100644 --- a/airship-shared/src/test/java/io/airlift/airship/shared/ArchiveHelper.java +++ b/airship-shared/src/test/java/io/airlift/airship/shared/ArchiveHelper.java @@ -5,8 +5,9 @@ import java.io.File; import static com.google.common.base.Charsets.UTF_8; +import static com.google.common.io.Files.asByteSink; import static com.google.common.io.Resources.getResource; -import static com.google.common.io.Resources.newInputStreamSupplier; +import static com.google.common.io.Resources.asByteSource; import static io.airlift.airship.shared.FileUtils.createTar; import static io.airlift.airship.shared.FileUtils.createTempDir; @@ -21,7 +22,7 @@ public static void createArchive(File archive) File binDir = new File(tempDir, "bin"); binDir.mkdirs(); File launcher = new File(binDir, "launcher"); - Files.copy(newInputStreamSupplier(getResource(ArchiveHelper.class, "launcher")), launcher); + asByteSource(getResource(ArchiveHelper.class, "launcher")).copyTo(asByteSink(launcher)); // make launcher executable launcher.setExecutable(true, true); diff --git a/pom.xml b/pom.xml index 05232c95..17f42cdf 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,7 @@ 0.5 3.0.3 1.11 + 18.0 @@ -218,7 +219,7 @@ io.airlift airline - 0.7-SNAPSHOT + 0.7