Skip to content

Commit

Permalink
Simplify built-in engine registration and ItemRank samples reorg.
Browse files Browse the repository at this point in the history
  • Loading branch information
dszeto committed Sep 11, 2014
1 parent 6d1605a commit 089f7bc
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 20 deletions.
45 changes: 25 additions & 20 deletions tools/src/main/scala/Console.scala
Original file line number Diff line number Diff line change
Expand Up @@ -309,29 +309,34 @@ object Console extends Logging {
}

def register(ca: ConsoleArgs): Unit = {
val sbt = detectSbt(ca)
info(s"Using command '${sbt}' at the current working directory to build.")
info("If the path above is incorrect, this process will fail.")
if (!RegisterEngine.builtinEngine(ca.engineJson)) {
val sbt = detectSbt(ca)
info(s"Using command '${sbt}' at the current working directory to build.")
info("If the path above is incorrect, this process will fail.")

val cmd =
s"${sbt} ${ca.sbtExtra.getOrElse("")} package assemblyPackageDependency"
info(s"Going to run: ${cmd}")
val r = cmd.!(ProcessLogger(
line => info(line), line => error(line)))
if (r != 0) {
error(s"Return code of previous step is ${r}. Aborting.")
sys.exit(1)
}
info("Build finished successfully. Locating files to be registered.")
val cmd =
s"${sbt} ${ca.sbtExtra.getOrElse("")} package assemblyPackageDependency"
info(s"Going to run: ${cmd}")
val r = cmd.!(ProcessLogger(
line => info(line), line => error(line)))
if (r != 0) {
error(s"Return code of previous step is ${r}. Aborting.")
sys.exit(1)
}
info("Build finished successfully. Locating files to be registered.")

val jarFiles = jarFilesForScala
if (jarFiles.size == 0) {
error("No files can be found for registration. Aborting.")
sys.exit(1)
}
jarFiles foreach { f => info(s"Found ${f.getName}")}
val jarFiles = jarFilesForScala
if (jarFiles.size == 0) {
error("No files can be found for registration. Aborting.")
sys.exit(1)
}
jarFiles foreach { f => info(s"Found ${f.getName}")}

RegisterEngine.registerEngine(ca.engineJson, jarFiles)
RegisterEngine.registerEngine(ca.engineJson, jarFiles)
} else {
info("Registering a built-in engine.")
RegisterEngine.registerEngine(ca.engineJson, builtinEngines(ca.pioHome.get))
}
}

def unregister(ca: ConsoleArgs): Unit = {
Expand Down
12 changes: 12 additions & 0 deletions tools/src/main/scala/RegisterEngine.scala
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@ object RegisterEngine extends Logging {
val engineManifests = Storage.getMetaDataEngineManifests
implicit val formats = DefaultFormats + new EngineManifestSerializer

def builtinEngine(jsonManifest: File): Boolean = {
val jsonString = try {
Source.fromFile(jsonManifest).mkString
} catch {
case e: java.io.FileNotFoundException =>
error(s"Engine manifest file not found: ${e.getMessage}. Aborting.")
sys.exit(1)
}
val engineManifest = read[EngineManifest](jsonString)
engineManifest.id.startsWith("io.prediction.engines.")
}

def registerEngine(
jsonManifest: File,
engineFiles: Seq[File],
Expand Down

0 comments on commit 089f7bc

Please sign in to comment.