From 0e728289c852108301066f1de0d9a85a000b0cd4 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Sat, 31 Oct 2015 15:58:29 -0700 Subject: [PATCH] Use use() more. --- src/main/kotlin/com/beust/kobalt/Plugins.kt | 29 +++++----- .../kotlin/com/beust/kobalt/maven/Kurl.kt | 12 ++--- .../kotlin/com/beust/kobalt/misc/KFiles.kt | 10 ---- .../kobalt/plugin/kotlin/KotlinPlugin.kt | 3 -- .../beust/kobalt/plugin/packaging/JarUtils.kt | 54 +++++++++---------- 5 files changed, 40 insertions(+), 68 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/Plugins.kt b/src/main/kotlin/com/beust/kobalt/Plugins.kt index 66f3338d..1e996a11 100644 --- a/src/main/kotlin/com/beust/kobalt/Plugins.kt +++ b/src/main/kotlin/com/beust/kobalt/Plugins.kt @@ -205,24 +205,19 @@ public class Plugins @Inject constructor (val taskManagerProvider : Provider + JarInputStream(fis).use { jis -> + val manifest = jis.manifest + val mainClass = manifest.mainAttributes.getValue(Plugins.MANIFEST_PLUGIN_CLASS) ?: + throw KobaltException("Couldn't find \"${Plugins.MANIFEST_PLUGIN_CLASS}\" in the " + + "manifest of $it") - val pluginClassName = mainClass.removeSuffix(" ") - val c = instantiateClassName(classLoader, pluginClassName) - @Suppress("UNCHECKED_CAST") - Plugins.addPlugin(c as Class) - log(1, "Added plugin $c") - } finally { - jis?.close() - fis?.close() + val pluginClassName = mainClass.removeSuffix(" ") + val c = instantiateClassName(classLoader, pluginClassName) + @Suppress("UNCHECKED_CAST") + Plugins.addPlugin(c as Class) + log(1, "Added plugin $c") + } } } executor.shutdown() diff --git a/src/main/kotlin/com/beust/kobalt/maven/Kurl.kt b/src/main/kotlin/com/beust/kobalt/maven/Kurl.kt index 48b1a0e7..fa66cec1 100644 --- a/src/main/kotlin/com/beust/kobalt/maven/Kurl.kt +++ b/src/main/kotlin/com/beust/kobalt/maven/Kurl.kt @@ -68,17 +68,13 @@ class Kurl @Inject constructor(@Assisted val url: String) { val string: String get() { val sb = StringBuilder() - connection.inputStream.let { inputStream -> + connection.inputStream.use { inputStream -> val reader = BufferedReader(InputStreamReader(inputStream)) var line: String? = reader.readLine() - try { - while (line != null) { - sb.append(line).append('\n') - line = reader.readLine() - } - } finally { - inputStream.close() + while (line != null) { + sb.append(line).append('\n') + line = reader.readLine() } } diff --git a/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt b/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt index 5548463a..6ebb661e 100644 --- a/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt +++ b/src/main/kotlin/com/beust/kobalt/misc/KFiles.kt @@ -179,14 +179,4 @@ public class KFiles { function: Function1): List { return KFiles.findRecursively(rootDir, directories, function) } - - public fun saveFile(file: File, bytes: ByteArray) { - file.parentFile.mkdirs() - val os = file.outputStream() - try { - os.write(bytes) - } finally { - os.close() - } - } } diff --git a/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt index 9fad4553..c715e0cc 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/kotlin/KotlinPlugin.kt @@ -13,7 +13,6 @@ import com.beust.kobalt.maven.IClasspathDependency import com.beust.kobalt.maven.LocalRepo import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.KobaltExecutors -import com.beust.kobalt.misc.log import java.io.File import javax.inject.Inject import javax.inject.Singleton @@ -87,8 +86,6 @@ class KotlinPlugin @Inject constructor( private fun compilePrivate(project: Project, cpList: List, sources: List, outputDirectory: File): TaskResult { - log(1, " Compiling ${sources.size} files with classpath size ${cpList.size}") - return kotlinCompilePrivate { classpath(cpList.map { it.jarFile.get().absolutePath }) sourceFiles(sources) diff --git a/src/main/kotlin/com/beust/kobalt/plugin/packaging/JarUtils.kt b/src/main/kotlin/com/beust/kobalt/plugin/packaging/JarUtils.kt index 35bd0d96..6b82a56a 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/packaging/JarUtils.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/packaging/JarUtils.kt @@ -1,13 +1,11 @@ package com.beust.kobalt.plugin.packaging import com.beust.kobalt.IFileSpec -import com.beust.kobalt.file import com.beust.kobalt.misc.log import java.io.* import java.util.jar.JarEntry import java.util.jar.JarFile import java.util.jar.JarInputStream -import java.util.jar.JarOutputStream import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream @@ -137,46 +135,42 @@ public class JarUtils { } } - fun removeDuplicateEntries(fromJarFile: File, toFile: File) { - val fromFile = JarFile(fromJarFile) - var entries = fromFile.entries() - val os = JarOutputStream(FileOutputStream(toFile)) - val seen = hashSetOf() - while (entries.hasMoreElements()) { - val entry = entries.nextElement() - if (! seen.contains(entry.name)) { - val ins = fromFile.getInputStream(entry) - addEntry(ins, JarEntry(entry), os) - } - seen.add(entry.name) - } - os.close() - - log(1, "Deduplicated $fromFile.name") - } +// fun removeDuplicateEntries(fromJarFile: File, toFile: File) { +// val fromFile = JarFile(fromJarFile) +// var entries = fromFile.entries() +// val os = JarOutputStream(FileOutputStream(toFile)) +// val seen = hashSetOf() +// while (entries.hasMoreElements()) { +// val entry = entries.nextElement() +// if (! seen.contains(entry.name)) { +// val ins = fromFile.getInputStream(entry) +// addEntry(ins, JarEntry(entry), os) +// } +// seen.add(entry.name) +// } +// os.close() +// +// log(1, "Deduplicated $fromFile.name") +// } fun extractJarFile(jarFile: File, destDir: File) { val jar = java.util.jar.JarFile(jarFile) val enumEntries = jar.entries() while (enumEntries.hasMoreElements()) { - val file = enumEntries.nextElement() as JarEntry + val file = enumEntries.nextElement() val f = File(destDir.path + java.io.File.separator + file.name) if (file.isDirectory) { f.mkdir() continue } - var ins: InputStream? = null - var fos: OutputStream? = null - try { - ins = jar.getInputStream(file) + + jar.getInputStream(file).use { ins -> f.parentFile.mkdirs() - fos = FileOutputStream(f) - while (ins.available() > 0) { - fos.write(ins.read()) + FileOutputStream(f).use { fos -> + while (ins.available() > 0) { + fos.write(ins.read()) + } } - } finally { - fos?.close() - ins?.close() } } }