You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@predictionio.apache.org by do...@apache.org on 2017/05/04 00:08:14 UTC

[1/4] incubator-predictionio-template-skeleton git commit: Example Tests

Repository: incubator-predictionio-template-skeleton
Updated Branches:
  refs/heads/master 1ebdace6a -> 9e98d905c


Example Tests

- Switch to `EngineFactory` from deprecated `IEngineFactory`
- Implement tests in template skeleton.

Closes #5


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/commit/349b8878
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/tree/349b8878
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/diff/349b8878

Branch: refs/heads/master
Commit: 349b8878d27a3eabf91d126162222d1b95900722
Parents: 8563484
Author: Mars Hall <ma...@heroku.com>
Authored: Wed May 3 15:51:35 2017 -0700
Committer: Donald Szeto <ds...@salesforce.com>
Committed: Wed May 3 15:51:35 2017 -0700

----------------------------------------------------------------------
 build.sbt                                   |  6 +++++-
 src/main/scala/Engine.scala                 |  4 ++--
 src/test/scala/AlgorithmTest.scala          | 26 ++++++++++++++++++++++++
 src/test/scala/DataSourceTest.scala         | 15 ++++++++++++++
 src/test/scala/EngineTest.scala             | 15 ++++++++++++++
 src/test/scala/PreparatorTest.scala         | 23 +++++++++++++++++++++
 src/test/scala/ServingTest.scala            | 23 +++++++++++++++++++++
 src/test/scala/SharedSingletonContext.scala | 24 ++++++++++++++++++++++
 8 files changed, 133 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/build.sbt
----------------------------------------------------------------------
diff --git a/build.sbt b/build.sbt
index eed327e..7615d32 100644
--- a/build.sbt
+++ b/build.sbt
@@ -9,4 +9,8 @@ organization := "org.apache.predictionio"
 libraryDependencies ++= Seq(
   "org.apache.predictionio" %% "apache-predictionio-core" % "0.10.0-incubating" % "provided",
   "org.apache.spark"        %% "spark-core"               % "1.3.0" % "provided",
-  "org.apache.spark"        %% "spark-mllib"              % "1.3.0" % "provided")
+  "org.apache.spark"        %% "spark-mllib"              % "1.3.0" % "provided",
+  "org.scalatest"           %% "scalatest"                % "2.2.1" % "test")
+
+// SparkContext is shared between all tests via SharedSingletonContext
+parallelExecution in Test := false
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/main/scala/Engine.scala
----------------------------------------------------------------------
diff --git a/src/main/scala/Engine.scala b/src/main/scala/Engine.scala
index bfecacc..6090772 100644
--- a/src/main/scala/Engine.scala
+++ b/src/main/scala/Engine.scala
@@ -1,13 +1,13 @@
 package org.template.vanilla
 
-import org.apache.predictionio.controller.IEngineFactory
+import org.apache.predictionio.controller.EngineFactory
 import org.apache.predictionio.controller.Engine
 
 case class Query(q: String) extends Serializable
 
 case class PredictedResult(p: String) extends Serializable
 
-object VanillaEngine extends IEngineFactory {
+object VanillaEngine extends EngineFactory {
   def apply() = {
     new Engine(
       classOf[DataSource],

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/test/scala/AlgorithmTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/AlgorithmTest.scala b/src/test/scala/AlgorithmTest.scala
new file mode 100644
index 0000000..2c533e0
--- /dev/null
+++ b/src/test/scala/AlgorithmTest.scala
@@ -0,0 +1,26 @@
+package org.template.vanilla
+
+import org.scalatest.FlatSpec
+import org.scalatest.Matchers
+
+import org.apache.predictionio.data.storage.Event
+
+class AlgorithmTest
+  extends FlatSpec with SharedSingletonContext with Matchers {
+
+  val params = AlgorithmParams(mult = 7)
+  val algorithm = new Algorithm(params)
+  val dataSource = Seq(
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"))
+
+  "train" should "return a model" in {
+    val dataSourceRDD = sparkContext.parallelize(dataSource)
+    val preparedData = new PreparedData(events = dataSourceRDD)
+    val model = algorithm.train(sparkContext, preparedData)
+    model shouldBe a [Model]
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/test/scala/DataSourceTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/DataSourceTest.scala b/src/test/scala/DataSourceTest.scala
new file mode 100644
index 0000000..9098946
--- /dev/null
+++ b/src/test/scala/DataSourceTest.scala
@@ -0,0 +1,15 @@
+package org.template.vanilla
+
+import org.scalatest.FlatSpec
+import org.scalatest.Matchers
+
+class DataSourceTest
+  extends FlatSpec with SharedSingletonContext with Matchers {
+
+  ignore should "return the data" in {
+    val dataSource = new DataSource(
+      new DataSourceParams(appName = "test"))
+    val data = dataSource.readTraining(sc = sparkContext)
+    data shouldBe a [TrainingData]
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/test/scala/EngineTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/EngineTest.scala b/src/test/scala/EngineTest.scala
new file mode 100644
index 0000000..26d9e2c
--- /dev/null
+++ b/src/test/scala/EngineTest.scala
@@ -0,0 +1,15 @@
+package org.template.vanilla
+
+import org.scalatest.FlatSpec
+import org.scalatest.Matchers
+
+import org.apache.predictionio.controller.Engine
+
+class EngineTest
+  extends FlatSpec with Matchers {
+
+  "apply" should "return a new engine instance" in {
+    val engine = VanillaEngine.apply()
+    engine shouldBe an [Engine[_,_,_,_,_,_]]
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/test/scala/PreparatorTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/PreparatorTest.scala b/src/test/scala/PreparatorTest.scala
new file mode 100644
index 0000000..d7b5ccd
--- /dev/null
+++ b/src/test/scala/PreparatorTest.scala
@@ -0,0 +1,23 @@
+package org.template.vanilla
+
+import org.scalatest.FlatSpec
+import org.scalatest.Matchers
+
+import org.apache.predictionio.data.storage.Event
+
+class PreparatorTest
+  extends FlatSpec with SharedSingletonContext with Matchers {
+
+  val dataSource = Seq(
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"),
+    Event(event = "test", entityType = "example", entityId = "1"))
+
+  "prepare" should "return the events" in {
+    val dataSourceRDD = sparkContext.parallelize(dataSource)
+    val preparedData = new PreparedData(events = dataSourceRDD)
+    preparedData shouldBe a [PreparedData]
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/test/scala/ServingTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/ServingTest.scala b/src/test/scala/ServingTest.scala
new file mode 100644
index 0000000..8571105
--- /dev/null
+++ b/src/test/scala/ServingTest.scala
@@ -0,0 +1,23 @@
+package org.template.vanilla
+
+import org.scalatest.FlatSpec
+import org.scalatest.Matchers
+
+class ServingTest
+  extends FlatSpec with Matchers {
+
+  val query = Query(q = "5")
+  val predictedResults = Seq(
+    PredictedResult(p = "25"),
+    PredictedResult(p = "50"),
+    PredictedResult(p = "75"))
+
+  "serve" should "return the first prediction" in {
+    val serving = new Serving()
+    val prediction = serving.serve(
+      query = query,
+      predictedResults = predictedResults)
+    prediction shouldBe a [PredictedResult]
+    prediction.p shouldEqual "25"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/349b8878/src/test/scala/SharedSingletonContext.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/SharedSingletonContext.scala b/src/test/scala/SharedSingletonContext.scala
new file mode 100644
index 0000000..92443d6
--- /dev/null
+++ b/src/test/scala/SharedSingletonContext.scala
@@ -0,0 +1,24 @@
+package org.template.vanilla
+
+import org.apache.spark.{SparkConf, SparkContext}
+import org.scalatest.{BeforeAndAfterAll, Suite}
+
+trait SharedSingletonContext extends BeforeAndAfterAll {
+  this: Suite =>
+
+  private var _sparkContext: Option[SparkContext] = None
+  def sparkContext = _sparkContext.get
+  val sparkConf = new SparkConf(false)
+
+  override def beforeAll() {
+    _sparkContext = Some(new SparkContext("local", "test", sparkConf))
+    super.beforeAll()
+  }
+
+  override def afterAll() {
+    super.afterAll()
+    sparkContext.stop()
+    _sparkContext = None
+    System.clearProperty("spark.driver.port")
+  }
+}
\ No newline at end of file


[2/4] incubator-predictionio-template-skeleton git commit: Bump to PIO 0.11.0-incubating and enhance sbt configuration

Posted by do...@apache.org.
Bump to PIO 0.11.0-incubating and enhance sbt configuration

Closes #6


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/commit/8da8d93c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/tree/8da8d93c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/diff/8da8d93c

Branch: refs/heads/master
Commit: 8da8d93c32e1e54dca86b9ae66bc7f9f7ee7c11e
Parents: 349b887
Author: Naoki Takezoe <ta...@gmail.com>
Authored: Wed May 3 15:53:49 2017 -0700
Committer: Donald Szeto <ds...@salesforce.com>
Committed: Wed May 3 15:53:49 2017 -0700

----------------------------------------------------------------------
 build.properties     | 1 +
 build.sbt            | 6 +-----
 project/assembly.sbt | 2 +-
 3 files changed, 3 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/8da8d93c/build.properties
----------------------------------------------------------------------
diff --git a/build.properties b/build.properties
new file mode 100644
index 0000000..64317fd
--- /dev/null
+++ b/build.properties
@@ -0,0 +1 @@
+sbt.version=0.13.15

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/8da8d93c/build.sbt
----------------------------------------------------------------------
diff --git a/build.sbt b/build.sbt
index 7615d32..1300f14 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,13 +1,9 @@
-import AssemblyKeys._
-
-assemblySettings
-
 name := "template-scala-parallel-vanilla"
 
 organization := "org.apache.predictionio"
 
 libraryDependencies ++= Seq(
-  "org.apache.predictionio" %% "apache-predictionio-core" % "0.10.0-incubating" % "provided",
+  "org.apache.predictionio" %% "apache-predictionio-core" % "0.11.0-incubating" % "provided",
   "org.apache.spark"        %% "spark-core"               % "1.3.0" % "provided",
   "org.apache.spark"        %% "spark-mllib"              % "1.3.0" % "provided",
   "org.scalatest"           %% "scalatest"                % "2.2.1" % "test")

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/8da8d93c/project/assembly.sbt
----------------------------------------------------------------------
diff --git a/project/assembly.sbt b/project/assembly.sbt
index 54c3252..e17409e 100644
--- a/project/assembly.sbt
+++ b/project/assembly.sbt
@@ -1 +1 @@
-addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
+addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.4")


[3/4] incubator-predictionio-template-skeleton git commit: 0.11.0-incubating release

Posted by do...@apache.org.
0.11.0-incubating release


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/commit/5494f06a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/tree/5494f06a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/diff/5494f06a

Branch: refs/heads/master
Commit: 5494f06a04f19c215de583ecef44b7339e4fce70
Parents: 8da8d93
Author: Donald Szeto <ds...@salesforce.com>
Authored: Wed May 3 17:07:27 2017 -0700
Committer: Donald Szeto <ds...@salesforce.com>
Committed: Wed May 3 17:07:27 2017 -0700

----------------------------------------------------------------------
 README.md                                   | 9 ++++++++-
 build.sbt                                   | 4 +---
 engine.json                                 | 2 +-
 src/main/scala/Algorithm.scala              | 2 +-
 src/main/scala/DataSource.scala             | 2 +-
 src/main/scala/Engine.scala                 | 2 +-
 src/main/scala/Preparator.scala             | 2 +-
 src/main/scala/Serving.scala                | 2 +-
 src/test/scala/AlgorithmTest.scala          | 2 +-
 src/test/scala/DataSourceTest.scala         | 2 +-
 src/test/scala/EngineTest.scala             | 2 +-
 src/test/scala/PreparatorTest.scala         | 2 +-
 src/test/scala/ServingTest.scala            | 2 +-
 src/test/scala/SharedSingletonContext.scala | 2 +-
 14 files changed, 21 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 55552ad..20b7a9e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Vanilla Engine Template
+# Skeleton Engine Template
 
 ## Documentation
 
@@ -6,6 +6,13 @@ Please refer to http://predictionio.incubator.apache.org/templates/vanilla/quick
 
 ## Versions
 
+### v0.11.0-incubating
+
+- Bump version number to track PredictionIO version
+- Added basic tests
+- Rename Scala package name
+- Update SBT version
+
 ### v0.4.0
 
 - Update for Apache PredictionIO 0.10.0-incubating

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/build.sbt
----------------------------------------------------------------------
diff --git a/build.sbt b/build.sbt
index 1300f14..81df9ab 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,7 +1,5 @@
 name := "template-scala-parallel-vanilla"
 
-organization := "org.apache.predictionio"
-
 libraryDependencies ++= Seq(
   "org.apache.predictionio" %% "apache-predictionio-core" % "0.11.0-incubating" % "provided",
   "org.apache.spark"        %% "spark-core"               % "1.3.0" % "provided",
@@ -9,4 +7,4 @@ libraryDependencies ++= Seq(
   "org.scalatest"           %% "scalatest"                % "2.2.1" % "test")
 
 // SparkContext is shared between all tests via SharedSingletonContext
-parallelExecution in Test := false
\ No newline at end of file
+parallelExecution in Test := false

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/engine.json
----------------------------------------------------------------------
diff --git a/engine.json b/engine.json
index 162c967..ca61630 100644
--- a/engine.json
+++ b/engine.json
@@ -1,7 +1,7 @@
 {
   "id": "default",
   "description": "Default settings",
-  "engineFactory": "org.template.vanilla.VanillaEngine",
+  "engineFactory": "org.example.vanilla.VanillaEngine",
   "datasource": {
     "params" : {
       "appName": "INVALID_APP_NAME"

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/main/scala/Algorithm.scala
----------------------------------------------------------------------
diff --git a/src/main/scala/Algorithm.scala b/src/main/scala/Algorithm.scala
index 7c6c9a5..9259dde 100644
--- a/src/main/scala/Algorithm.scala
+++ b/src/main/scala/Algorithm.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.apache.predictionio.controller.P2LAlgorithm
 import org.apache.predictionio.controller.Params

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/main/scala/DataSource.scala
----------------------------------------------------------------------
diff --git a/src/main/scala/DataSource.scala b/src/main/scala/DataSource.scala
index 4f4026f..940ac05 100644
--- a/src/main/scala/DataSource.scala
+++ b/src/main/scala/DataSource.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.apache.predictionio.controller.PDataSource
 import org.apache.predictionio.controller.EmptyEvaluationInfo

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/main/scala/Engine.scala
----------------------------------------------------------------------
diff --git a/src/main/scala/Engine.scala b/src/main/scala/Engine.scala
index 6090772..b01bc2a 100644
--- a/src/main/scala/Engine.scala
+++ b/src/main/scala/Engine.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.apache.predictionio.controller.EngineFactory
 import org.apache.predictionio.controller.Engine

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/main/scala/Preparator.scala
----------------------------------------------------------------------
diff --git a/src/main/scala/Preparator.scala b/src/main/scala/Preparator.scala
index 1504cbd..1be9ba7 100644
--- a/src/main/scala/Preparator.scala
+++ b/src/main/scala/Preparator.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.apache.predictionio.controller.PPreparator
 import org.apache.predictionio.data.storage.Event

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/main/scala/Serving.scala
----------------------------------------------------------------------
diff --git a/src/main/scala/Serving.scala b/src/main/scala/Serving.scala
index c8d62c9..309f2d2 100644
--- a/src/main/scala/Serving.scala
+++ b/src/main/scala/Serving.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.apache.predictionio.controller.LServing
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/test/scala/AlgorithmTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/AlgorithmTest.scala b/src/test/scala/AlgorithmTest.scala
index 2c533e0..a012c6c 100644
--- a/src/test/scala/AlgorithmTest.scala
+++ b/src/test/scala/AlgorithmTest.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.scalatest.FlatSpec
 import org.scalatest.Matchers

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/test/scala/DataSourceTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/DataSourceTest.scala b/src/test/scala/DataSourceTest.scala
index 9098946..baf8d2c 100644
--- a/src/test/scala/DataSourceTest.scala
+++ b/src/test/scala/DataSourceTest.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.scalatest.FlatSpec
 import org.scalatest.Matchers

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/test/scala/EngineTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/EngineTest.scala b/src/test/scala/EngineTest.scala
index 26d9e2c..802c3d4 100644
--- a/src/test/scala/EngineTest.scala
+++ b/src/test/scala/EngineTest.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.scalatest.FlatSpec
 import org.scalatest.Matchers

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/test/scala/PreparatorTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/PreparatorTest.scala b/src/test/scala/PreparatorTest.scala
index d7b5ccd..f6952f7 100644
--- a/src/test/scala/PreparatorTest.scala
+++ b/src/test/scala/PreparatorTest.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.scalatest.FlatSpec
 import org.scalatest.Matchers

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/test/scala/ServingTest.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/ServingTest.scala b/src/test/scala/ServingTest.scala
index 8571105..c6a025a 100644
--- a/src/test/scala/ServingTest.scala
+++ b/src/test/scala/ServingTest.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.scalatest.FlatSpec
 import org.scalatest.Matchers

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/blob/5494f06a/src/test/scala/SharedSingletonContext.scala
----------------------------------------------------------------------
diff --git a/src/test/scala/SharedSingletonContext.scala b/src/test/scala/SharedSingletonContext.scala
index 92443d6..da796e2 100644
--- a/src/test/scala/SharedSingletonContext.scala
+++ b/src/test/scala/SharedSingletonContext.scala
@@ -1,4 +1,4 @@
-package org.template.vanilla
+package org.example.vanilla
 
 import org.apache.spark.{SparkConf, SparkContext}
 import org.scalatest.{BeforeAndAfterAll, Suite}


[4/4] incubator-predictionio-template-skeleton git commit: Merge branch 'develop'

Posted by do...@apache.org.
Merge branch 'develop'


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/commit/9e98d905
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/tree/9e98d905
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio-template-skeleton/diff/9e98d905

Branch: refs/heads/master
Commit: 9e98d905caf5beaddda98d483e4ee7bd7a9181bd
Parents: 1ebdace 5494f06
Author: Donald Szeto <ds...@salesforce.com>
Authored: Wed May 3 17:08:08 2017 -0700
Committer: Donald Szeto <ds...@salesforce.com>
Committed: Wed May 3 17:08:08 2017 -0700

----------------------------------------------------------------------
 README.md                                   |  9 +++++++-
 build.properties                            |  1 +
 build.sbt                                   | 14 ++++++-------
 engine.json                                 |  2 +-
 project/assembly.sbt                        |  2 +-
 src/main/scala/Algorithm.scala              |  2 +-
 src/main/scala/DataSource.scala             |  2 +-
 src/main/scala/Engine.scala                 |  6 +++---
 src/main/scala/Preparator.scala             |  2 +-
 src/main/scala/Serving.scala                |  2 +-
 src/test/scala/AlgorithmTest.scala          | 26 ++++++++++++++++++++++++
 src/test/scala/DataSourceTest.scala         | 15 ++++++++++++++
 src/test/scala/EngineTest.scala             | 15 ++++++++++++++
 src/test/scala/PreparatorTest.scala         | 23 +++++++++++++++++++++
 src/test/scala/ServingTest.scala            | 23 +++++++++++++++++++++
 src/test/scala/SharedSingletonContext.scala | 24 ++++++++++++++++++++++
 16 files changed, 150 insertions(+), 18 deletions(-)
----------------------------------------------------------------------