fixing Scala to Kotlin stuff
authorguy.peleg <guy.peleg@myob.com>
Tue, 30 Oct 2018 10:01:32 +0000 (21:01 +1100)
committerguy.peleg <guy.peleg@myob.com>
Tue, 30 Oct 2018 10:01:32 +0000 (21:01 +1100)
common/build.gradle
common/src/main/kotlin/org/apache/amaterasu/common/dataobjects/ActionData.kt
common/src/main/scala/org/apache/amaterasu/common/dataobjects/ActionDataHelper.scala
leader-common/src/main/scala/org/apache/amaterasu/leader/common/utilities/DataLoader.scala
leader/src/main/scala/org/apache/amaterasu/leader/dsl/JobParser.scala
leader/src/main/scala/org/apache/amaterasu/leader/execution/actions/SequentialAction.scala
sdk/build.gradle

index bc410a8..d9b2214 100644 (file)
@@ -16,7 +16,7 @@
  */
 plugins {
     id 'com.github.johnrengelman.shadow' version '1.2.4'
-    id 'kotlin'
+    id "org.jetbrains.kotlin.jvm"
     id 'scala'
 }
 
@@ -46,6 +46,10 @@ dependencies {
     compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.9'
     compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.4'
 
+
+    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
+    compile "org.jetbrains.kotlin:kotlin-reflect"
+
     // currently we have to use this specific mesos version to prevent from
     // clashing with spark
     compile('org.apache.mesos:mesos:0.22.2:shaded-protobuf') {
@@ -73,8 +77,11 @@ sourceSets {
 
     // this is done so Scala will compile before Kotlin
     main {
+        kotlin {
+            srcDirs = ['src/main/kotlin']
+        }
         scala {
-            srcDirs = ['src/main/kotlin', 'src/main/java', 'src/main/scala']
+            srcDirs = ['src/main/kotlin','src/main/java', 'src/main/scala']
         }
         java {
             srcDirs = []
@@ -82,7 +89,7 @@ sourceSets {
     }
 }
 
-compileKotlin {
+compileKotlin{
     kotlinOptions.jvmTarget = "1.8"
 }
 compileTestKotlin {
index a3be8bd..7e19db2 100644 (file)
 package org.apache.amaterasu.common.dataobjects
 
 import org.apache.amaterasu.common.configuration.enums.ActionStatus
-import scala.collection.mutable.ListBuffer
 
-data class ActionData(var status: ActionStatus,
-                      var name: String,
-                      var src: String,
-                      var groupId: String,
-                      var typeId: String,
-                      var id: String,
-                      var exports: Map<String, String>,
-                      var nextActionIds: ListBuffer<String>) {
+
+
+/*
+    Adding default values just for the sake of Scala
+ */
+data class ActionData(var status: ActionStatus = ActionStatus.pending,
+                      var name: String= "",
+                      var src: String= "",
+                      var groupId: String= "",
+                      var typeId: String= "",
+                      var id: String= "",
+                      var exports: Map<String, String> = mutableMapOf(),
+                      var nextActionIds: List<String> = listOf()) {
     lateinit var errorActionId: String
+
 }
index 5fa2d74..75be6e7 100644 (file)
@@ -18,6 +18,7 @@ package org.apache.amaterasu.common.dataobjects
 
 import com.google.gson.Gson
 
+/*
 object ActionDataHelper {
   private val gson = new Gson
   def toJsonString(actionData: ActionData): String = {
@@ -25,6 +26,7 @@ object ActionDataHelper {
   }
 
   def fromJsonString(jsonString: String) : ActionData = {
-    gson.fromJson[ActionData](jsonString, ActionData.getClass)
+    gson.fromJson[ActionData](jsonString, new ActionData().getClass)
   }
-}
\ No newline at end of file
+}
+*/
\ No newline at end of file
index 7a1bc6c..e417905 100755 (executable)
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 package org.apache.amaterasu.leader.common.utilities
-
+import scala.collection.JavaConverters._
 import java.io.{File, FileInputStream}
 import java.nio.file.{Files, Paths}
 
@@ -43,12 +43,15 @@ object DataLoader extends Logging {
   ymlMapper.registerModule(DefaultScalaModule)
 
   def getTaskData(actionData: ActionData, env: String): TaskData = {
-    val srcFile = actionData.src
+    val srcFile = actionData.getSrc
     val src = Source.fromFile(s"repo/src/$srcFile").mkString
     val envValue = Source.fromFile(s"repo/env/$env/job.yml").mkString
 
     val envData = ymlMapper.readValue(envValue, classOf[Environment])
-    TaskData(src, envData, actionData.groupId, actionData.typeId, actionData.exports)
+
+    val exports = actionData.getExports.asScala.toMap // Kotlin to Scala TODO: Remove me as fast as you can
+
+    TaskData(src, envData, actionData.getGroupId, actionData.getTypeId, exports)
   }
 
   def getTaskDataBytes(actionData: ActionData, env: String): Array[Byte] = {
index aba6210..7a0c605 100755 (executable)
@@ -105,17 +105,18 @@ object JobParser {
     )
 
     //updating the list of frameworks setup
-    manager.frameworks.getOrElseUpdate(action.data.groupId,
+    manager.frameworks.getOrElseUpdate(action.data.getGroupId,
                                        new mutable.HashSet[String]())
-                                       .add(action.data.typeId)
+                                       .add(action.data.getTypeId)
 
 
-    if (manager.head == null)
+    if (manager.head == null) {
       manager.head = action
+    }
 
-    if (previous != null)
-      previous.data.nextActionIds.append(action.actionId)
-
+    if (previous != null) {
+      previous.data.getNextActionIds.add(action.actionId)
+    }
     manager.registerAction(action)
 
     val errorNode = actionData.path("error")
@@ -125,7 +126,7 @@ object JobParser {
       val errorAction = parseErrorAction(
         errorNode,
         manager.jobId,
-        action.data.id,
+        action.data.getId,
         actionsQueue,
         manager.client
       )
@@ -134,9 +135,9 @@ object JobParser {
       manager.registerAction(errorAction)
 
       //updating the list of frameworks setup
-      manager.frameworks.getOrElseUpdate(errorAction.data.groupId,
+      manager.frameworks.getOrElseUpdate(errorAction.data.getGroupId,
         new mutable.HashSet[String]())
-        .add(errorAction.data.typeId)
+        .add(errorAction.data.getTypeId)
     }
 
     parseActions(actions.tail, manager, actionsQueue, attempts, action)
index ca29f0c..5d7f41c 100755 (executable)
@@ -51,7 +51,7 @@ class SequentialAction extends Action {
 
   override def handleFailure(message: String): String = {
 
-    println(s"Part ${data.name} of group ${data.groupId} and of type ${data.typeId} failed on attempt $attempt with message: $message")
+    println(s"Part ${data.getName} of group ${data.getGroupId} and of type ${data.getTypeId} failed on attempt $attempt with message: $message")
     attempt += 1
 
     if (attempt <= attempts) {
@@ -60,7 +60,7 @@ class SequentialAction extends Action {
     else {
       announceFailure()
       println(s"===> moving to err action ${data.errorActionId}")
-      data.status = ActionStatus.failed
+      data.setStatus ( ActionStatus.failed )
       data.errorActionId
     }
 
index 581ea08..c5378b8 100644 (file)
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 apply plugin: 'java'
-
+apply plugin: "kotlin"
 repositories {
     mavenCentral()
 }