From 408e00c0ae92acac5087e9ae5dd8a2b66bc696bd Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Sun, 17 Apr 2016 10:29:50 -0700 Subject: [PATCH] Restore the DynamicGraph name. --- .../internal/{DG.kt => DynamicGraph.kt} | 22 ++++++++-------- .../com/beust/kobalt/internal/TaskManager.kt | 10 +++---- .../beust/kobalt/internal/DynamicGraphTest.kt | 26 +++++++++---------- .../beust/kobalt/internal/TaskManagerTest.kt | 2 +- 4 files changed, 30 insertions(+), 30 deletions(-) rename modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/{DG.kt => DynamicGraph.kt} (91%) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DG.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt similarity index 91% rename from modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DG.kt rename to modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt index 9a2f2646..e90dad5d 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DG.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt @@ -23,7 +23,7 @@ class Node(val value: T) { override fun toString() = value.toString() } -class DG { +class DynamicGraph { val VERBOSE = 1 val values : Collection get() = nodes.map { it.value } val nodes = hashSetOf>() @@ -101,7 +101,7 @@ class DG { } } -interface IWorker2 : Callable> { +interface IWorker : Callable> { /** * @return list of tasks this worker is working on. */ @@ -113,7 +113,7 @@ interface IWorker2 : Callable> { val priority : Int } -interface IThreadWorkerFactory2 { +interface IThreadWorkerFactory { /** * Creates {@code IWorker} for specified set of tasks. It is not necessary that @@ -122,10 +122,10 @@ interface IThreadWorkerFactory2 { * @param nodes tasks that need to be executed * @return list of workers */ - fun createWorkers(nodes: Collection) : List> + fun createWorkers(nodes: Collection) : List> } -class DGExecutor(val graph : DG, val factory: IThreadWorkerFactory2) { +class DynamicGraphExecutor(val graph : DynamicGraph, val factory: IThreadWorkerFactory) { val executor = Executors.newFixedThreadPool(5, NamedThreadFactory("DynamicGraphExecutor")) val completion = ExecutorCompletionService>(executor) @@ -144,7 +144,7 @@ class DGExecutor(val graph : DG, val factory: IThreadWorkerFactory2) { var newFreeNodes = HashSet(graph.freeNodes) while (! gotError && running > 0 || newFreeNodes.size > 0) { nodesRun.addAll(newFreeNodes) - val callables : List> = factory.createWorkers(newFreeNodes) + val callables : List> = factory.createWorkers(newFreeNodes) callables.forEach { completion.submit(it) } running += callables.size @@ -184,7 +184,7 @@ class DGExecutor(val graph : DG, val factory: IThreadWorkerFactory2) { } fun main(argv: Array) { - val dg = DG().apply { + val dg = DynamicGraph().apply { // a -> b // b -> c, d // e @@ -193,10 +193,10 @@ fun main(argv: Array) { addEdge("b", "d") addNode("e") } - val factory = object : IThreadWorkerFactory2 { - override fun createWorkers(nodes: Collection): List> { + val factory = object : IThreadWorkerFactory { + override fun createWorkers(nodes: Collection): List> { return nodes.map { - object: IWorker2 { + object: IWorker { override fun call(): TaskResult2? { log(1, " Running worker $it") return TaskResult2(true, null, it) @@ -208,5 +208,5 @@ fun main(argv: Array) { } } - DGExecutor(dg, factory).run() + DynamicGraphExecutor(dg, factory).run() } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt index f09f6369..ae4aa860 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TaskManager.kt @@ -103,12 +103,12 @@ public class TaskManager @Inject constructor(val args: Args, // log(2, "About to run graph:\n ${graph.dump()} ") - val factory = object : IThreadWorkerFactory2 { + val factory = object : IThreadWorkerFactory { override fun createWorkers(nodes: Collection) = nodes.map { TaskWorker(listOf(it), args.dryRun, messages) } } - val executor = DGExecutor(graph, factory) + val executor = DynamicGraphExecutor(graph, factory) val thisResult = executor.run() if (thisResult != 0) { log(2, "Marking project ${project.name} as failed") @@ -129,8 +129,8 @@ public class TaskManager @Inject constructor(val args: Args, alwaysRunAfter: TreeMultimap, toName: (T) -> String, accept: (T) -> Boolean): - DG { - val graph = DG() + DynamicGraph { + val graph = DynamicGraph() taskNames.forEach { taskName -> val ti = TaskInfo(taskName) if (!dependencies.keys().contains(ti.taskName)) { @@ -387,7 +387,7 @@ public class TaskManager @Inject constructor(val args: Args, } class TaskWorker(val tasks: List, val dryRun: Boolean, val messages: MutableList) - : IWorker2 { + : IWorker { override fun call() : TaskResult2 { if (tasks.size > 0) { diff --git a/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt b/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt index 7e576bda..cc59c33a 100644 --- a/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt +++ b/src/test/kotlin/com/beust/kobalt/internal/DynamicGraphTest.kt @@ -8,23 +8,23 @@ import java.util.* class DynamicGraphTest { - private fun assertFreeNodesEquals(graph: DG, expected: Array) { + private fun assertFreeNodesEquals(graph: DynamicGraph, expected: Array) { val h = HashSet(graph.freeNodes) val e = HashSet(expected.toList()) Assert.assertEquals(h, e) } - private fun createFactory(runNodes: ArrayList, errorFunction: (T) -> Boolean) : IThreadWorkerFactory2 { - return object: IThreadWorkerFactory2 { - override fun createWorkers(nodes: Collection): List> { - val result = arrayListOf>() + private fun createFactory(runNodes: ArrayList, errorFunction: (T) -> Boolean) : IThreadWorkerFactory { + return object: IThreadWorkerFactory { + override fun createWorkers(nodes: Collection): List> { + val result = arrayListOf>() nodes.forEach { result.add(Worker(runNodes, it, errorFunction)) } return result } } } - class Worker(val runNodes: ArrayList, val n: T, val errorFunction: (T) -> Boolean) : IWorker2 { + class Worker(val runNodes: ArrayList, val n: T, val errorFunction: (T) -> Boolean) : IWorker { override val priority = 0 override fun call() : TaskResult2 { @@ -36,14 +36,14 @@ class DynamicGraphTest { @Test fun testExecutor() { - val dg = DG(); + val dg = DynamicGraph(); dg.addEdge("compile", "runApt") dg.addEdge("compile", "generateVersion") val runNodes = arrayListOf() val factory = createFactory(runNodes, { true }) - DGExecutor(dg, factory).run() + DynamicGraphExecutor(dg, factory).run() Assert.assertEquals(runNodes.size, 3) } @@ -51,7 +51,7 @@ class DynamicGraphTest { @Test private fun testExecutorWithSkip() { - val g = DG() + val g = DynamicGraph() // 2 and 3 depend on 1, 4 depend on 3, 10 depends on 4 // 3 will blow up, which should make 4 and 10 skipped g.addEdge(2, 1) @@ -61,7 +61,7 @@ class DynamicGraphTest { g.addEdge(5, 2) val runNodes = arrayListOf() val factory = createFactory(runNodes, { n -> n != 3 }) - val ex = DGExecutor(g, factory) + val ex = DynamicGraphExecutor(g, factory) ex.run() Thread.`yield`() Assert.assertTrue(! runNodes.contains(4)) @@ -70,7 +70,7 @@ class DynamicGraphTest { @Test fun test8() { - DG().apply { + DynamicGraph().apply { addEdge("b1", "a1") addEdge("b1", "a2") addEdge("b2", "a1") @@ -97,7 +97,7 @@ class DynamicGraphTest { @Test fun test2() { - DG().apply { + DynamicGraph().apply { addEdge("b1", "a1") addEdge("b1", "a2") addNode("x") @@ -131,7 +131,7 @@ class DynamicGraphTest { @Test fun runAfter() { - DG().apply { + DynamicGraph().apply { // a -> b // b -> c, d // e diff --git a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt index dd572ac8..6aa8c93a 100644 --- a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt +++ b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt @@ -11,7 +11,7 @@ import org.testng.annotations.Test @Guice(modules = arrayOf(TestModule::class)) class TaskManagerTest @Inject constructor(val taskManager: TaskManager) { - class DryRunGraphExecutor(val graph: DG) { + class DryRunGraphExecutor(val graph: DynamicGraph) { fun run() : List { val result = arrayListOf() var freeNodes = graph.freeNodes