Merge branch 'develop'
diff --git a/bin/build.sh b/bin/build.sh
index 94beda1..60cb17c 100755
--- a/bin/build.sh
+++ b/bin/build.sh
@@ -104,8 +104,6 @@
# Build migration tools
echo "Going to build PredictionIO Migration Tools..."
-cd $BASE/tools/migration/0.4/settings04
-$SBT $CLEAN update pack
cd $BASE/tools/migration/0.5/appdata
$SBT $CLEAN update pack
diff --git a/bin/change-version.py b/bin/change-version.py
index 3543559..1ae8b57 100755
--- a/bin/change-version.py
+++ b/bin/change-version.py
@@ -31,6 +31,7 @@
'commons/build.sbt',
'dist/bin/*',
'dist/bin/*/*',
+ 'dist/conf/init.json',
'dist/conf/predictionio.conf',
'output/build.sbt',
'process/commons/hadoop/scalding/build.sbt',
diff --git a/bin/common.sh b/bin/common.sh
index 1ec89cc..a99e0f3 100644
--- a/bin/common.sh
+++ b/bin/common.sh
@@ -2,7 +2,7 @@
# This script should be sourced with $BASE set to the base of the repository
-VERSION=0.5.0
+VERSION=0.5.1
# Play framework related
PLAY_OPTS=
diff --git a/bin/package-updater.sh b/bin/package-updater.sh
new file mode 100755
index 0000000..1b2dbe4
--- /dev/null
+++ b/bin/package-updater.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env sh
+
+# PredictionIO Updater Package Script
+
+# NOTE: Run this script after bin/build.sh to package things up as an updater
+
+# Get the absolute path of the build script
+SCRIPT="$0"
+while [ -h "$SCRIPT" ] ; do
+ SCRIPT=`readlink "$SCRIPT"`
+done
+
+# Get the base directory of the repo
+DIR=`dirname $SCRIPT`/..
+cd $DIR
+BASE=`pwd`
+
+. "$BASE/bin/common.sh"
+
+UPDATER_NAME="PredictionIO-$VERSION-updater"
+
+cd "$BASE/tools/softwaremanager/target"
+rm -rf $UPDATER_NAME
+rm -f "$UPDATER_NAME.zip"
+cp -R pack $UPDATER_NAME
+zip -q -r "$UPDATER_NAME.zip" "$UPDATER_NAME"
+
+echo "Packaging finished at $BASE/tools/softwaremanager/target/$UPDATER_NAME.zip"
diff --git a/bin/package.sh b/bin/package.sh
index 911a3f1..bc5e5cb 100755
--- a/bin/package.sh
+++ b/bin/package.sh
@@ -55,7 +55,6 @@
cp "$BASE/process/engines/itemrec/evaluations/scala/paramgen/target/scala-2.10/PredictionIO-Process-ItemRec-Evaluations-ParamGen-assembly-$VERSION.jar" "$PACKAGE_DIR/lib"
cp "$BASE/process/engines/itemsim/algorithms/hadoop/scalding/target/scala-2.9.2/PredictionIO-Process-ItemSim-Algorithms-Hadoop-Scalding-assembly-$VERSION.jar" "$PACKAGE_DIR/lib"
cp -n $BASE/tools/conncheck/target/pack/lib/* $PACKAGE_DIR/lib
-cp -n $BASE/tools/migration/0.4/settings04/target/pack/lib/* $PACKAGE_DIR/lib
cp -n $BASE/tools/migration/0.5/appdata/target/pack/lib/* $PACKAGE_DIR/lib
cp -n $BASE/tools/settingsinit/target/pack/lib/* $PACKAGE_DIR/lib
cp -n $BASE/tools/softwaremanager/target/pack/lib/* $PACKAGE_DIR/lib
diff --git a/commons/build.sbt b/commons/build.sbt
index 696cb7c..396d3af 100644
--- a/commons/build.sbt
+++ b/commons/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Commons"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
diff --git a/dist/bin/backup b/dist/bin/backup
index b336709..82525c9 100755
--- a/dist/bin/backup
+++ b/dist/bin/backup
@@ -129,24 +129,24 @@
JARS="${JARS}:${PROG_HOME}/lib/asm-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-commons-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-tree-4.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.3.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.6.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.3.jar"
+JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.7.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-io-2.4.jar"
JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/kryo-2.21.jar"
+JARS="${JARS}:${PROG_HOME}/lib/kryo-2.17.jar"
JARS="${JARS}:${PROG_HOME}/lib/minlog-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.1.jar"
JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/scopt_2.10-3.1.0.jar"
diff --git a/dist/bin/common.sh b/dist/bin/common.sh
index 6550f87..38a496e 100644
--- a/dist/bin/common.sh
+++ b/dist/bin/common.sh
@@ -2,7 +2,7 @@
# This script should be sourced with $BASE set to the base of the repository
-VERSION=0.5.0
+VERSION=0.5.1
# Play framework related
PLAY_OPTS=""
diff --git a/dist/bin/conncheck b/dist/bin/conncheck
index 43a1031..7399063 100755
--- a/dist/bin/conncheck
+++ b/dist/bin/conncheck
@@ -144,8 +144,8 @@
JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-connection-check-tool_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-connection-check-tool_2.10-0.5.1.jar"
JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/slf4j-api-1.6.0.jar"
diff --git a/dist/bin/migration/appdata b/dist/bin/migration/appdata
index 5725211..432b442 100755
--- a/dist/bin/migration/appdata
+++ b/dist/bin/migration/appdata
@@ -144,8 +144,8 @@
JARS="${JARS}:${PROG_HOME}/../lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/../lib/nscala-time_2.10-0.2.0.jar"
JARS="${JARS}:${PROG_HOME}/../lib/objenesis-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/../lib/predictionio-0.4-to-0.5-appdata-migration_2.10-0.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/../lib/predictionio-commons_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/../lib/predictionio-0.4-to-0.5-appdata-migration_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/../lib/predictionio-commons_2.10-0.5.1.jar"
JARS="${JARS}:${PROG_HOME}/../lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/../lib/scala-library-2.10.0.jar"
JARS="${JARS}:${PROG_HOME}/../lib/slf4j-api-1.6.0.jar"
diff --git a/dist/bin/restore b/dist/bin/restore
index c8ad021..0383feb 100755
--- a/dist/bin/restore
+++ b/dist/bin/restore
@@ -129,24 +129,24 @@
JARS="${JARS}:${PROG_HOME}/lib/asm-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-commons-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-tree-4.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.3.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.6.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.3.jar"
+JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.7.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-io-2.4.jar"
JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/kryo-2.21.jar"
+JARS="${JARS}:${PROG_HOME}/lib/kryo-2.17.jar"
JARS="${JARS}:${PROG_HOME}/lib/minlog-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.1.jar"
JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/scopt_2.10-3.1.0.jar"
diff --git a/dist/bin/settings04 b/dist/bin/settings04
deleted file mode 100755
index f169668..0000000
--- a/dist/bin/settings04
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/sh
-#/*--------------------------------------------------------------------------
-# * Copyright 2012 Taro L. Saito
-# *
-# * Licensed under the Apache License, Version 2.0 (the "License");
-# * you may not use this file except in compliance with the License.
-# * You may obtain a copy of the License at
-# *
-# * http://www.apache.org/licenses/LICENSE-2.0
-# *
-# * Unless required by applicable law or agreed to in writing, software
-# * distributed under the License is distributed on an "AS IS" BASIS,
-# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# * See the License for the specific language governing permissions and
-# * limitations under the License.
-# *--------------------------------------------------------------------------*/
-
-if [ -z "$PROG_HOME" ] ; then
- ## resolve links - $0 may be a link to PROG_HOME
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname "$PRG"`/$link"
- fi
- done
-
- saveddir=`pwd`
-
- PROG_HOME=`dirname "$PRG"`/..
-
- # make it fully qualified
- PROG_HOME=`cd "$PROG_HOME" && pwd`
-
- cd "$saveddir"
-fi
-
-
-cygwin=false
-mingw=false
-darwin=false
-case "`uname`" in
- CYGWIN*) cygwin=true;;
- MINGW*) mingw=true;;
- Darwin*) darwin=true
- if [ -z "$JAVA_VERSION" ] ; then
- JAVA_VERSION="CurrentJDK"
- else
- echo "Using Java version: $JAVA_VERSION" 1>&2
- fi
- if [ -z "$JAVA_HOME" ] ; then
- JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
- fi
- JVM_OPT="$JVM_OPT -Xdock:name=${PROG_NAME} -Xdock:icon=$PROG_HOME/icon-mac.png -Dcom.apple.macos.useScreenMenuBar=true"
- JAVACMD="`which java`"
- ;;
-esac
-
-# Resolve JAVA_HOME from javac command path
-if [ -z "$JAVA_HOME" ]; then
- javaExecutable="`which javac`"
- if [ -n "$javaExecutable" -a ! "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
- # readlink(1) is not available as standard on Solaris 10.
- readLink=`which readlink`
- if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
- javaExecutable="`readlink -f \"$javaExecutable\"`"
- javaHome="`dirname \"$javaExecutable\"`"
- javaHome=`expr "$javaHome" : '\(.*\)/bin'`
- JAVA_HOME="$javaHome"
- export JAVA_HOME
- fi
- fi
-fi
-
-
-if [ -z "$JAVACMD" ] ; then
- if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD="`which java`"
- fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
- echo "Error: JAVA_HOME is not defined correctly."
- echo " We cannot execute $JAVACMD"
- exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
- echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSPATH_SUFFIX=""
-
-# For Cygwin, switch paths to Windows-mixed format before running java
-if $cygwin; then
- [ -n "$PROG_HOME" ] &&
- PROG_HOME=`cygpath -am "$PROG_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath -am "$JAVA_HOME"`
- CLASSPATH_SUFFIX=";"
-# [ -n "$HOME" ] &&
-# HOME=`cygpath --path --windows "$HOME"`
-fi
-
-# For Migwn, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
- [ -n "$PROG_HOME" ] &&
- PROG_HOME="`(cd "$PROG_HOME"; pwd)`"
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
- # TODO classpath?
-fi
-
-
-PROG_NAME=settings04
-
-JARS="${PROG_HOME}/lib/predictionio-0.3-to-0.4-settings-migration_2.10-0.4.jar:"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.10.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-concurrent_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-core_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-effect_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/slf4j-api-1.6.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/specs2_2.10-1.13.jar"
-
-exec "$JAVACMD" ${JVM_OPT} -cp "${JARS}" -Dprog.home="${PROG_HOME}" io.prediction.tools.migration.Settings04 $@
-
diff --git a/dist/bin/settingsinit b/dist/bin/settingsinit
index db3c46c..12f0ccc 100755
--- a/dist/bin/settingsinit
+++ b/dist/bin/settingsinit
@@ -126,26 +126,30 @@
PROG_NAME=settingsinit
-JARS="${PROG_HOME}/lib/predictionio-settings-initialization_2.10-0.5.0.jar:"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/asm-4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/asm-commons-4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/asm-tree-4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.3.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.7.jar"
JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/jline-2.9.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.10.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/kryo-2.17.jar"
+JARS="${JARS}:${PROG_HOME}/lib/minlog-1.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-settings-initialization_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-concurrent_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-core_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-effect_2.10-7.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/slf4j-api-1.6.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/slf4j-nop-1.6.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/specs2_2.10-1.13.jar"
JVM_OPT="$JVM_OPT -Dconfig.file=${PROG_HOME}/conf/predictionio.conf -Dio.prediction.base=$PROG_HOME"
diff --git a/dist/bin/start-admin.sh b/dist/bin/start-admin.sh
index 6cc0eed..4f45744 100755
--- a/dist/bin/start-admin.sh
+++ b/dist/bin/start-admin.sh
@@ -17,15 +17,19 @@
LIB_DIR="$BASE/lib"
-JARS="$LIB_DIR/predictionio-admin_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/akka-actor_2.10.jar"
JARS="${JARS}:$LIB_DIR/akka-slf4j_2.10.jar"
+JARS="${JARS}:$LIB_DIR/asm-4.0.jar"
+JARS="${JARS}:$LIB_DIR/asm-commons-4.0.jar"
+JARS="${JARS}:$LIB_DIR/asm-tree-4.0.jar"
JARS="${JARS}:$LIB_DIR/async-http-client.jar"
-JARS="${JARS}:$LIB_DIR/casbah-commons_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-core_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-gridfs_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-query_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/commons-codec-1.7.jar"
+JARS="${JARS}:$LIB_DIR/bijection-core_2.10-0.3.0.jar"
+JARS="${JARS}:$LIB_DIR/casbah-commons_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-core_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-gridfs_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-query_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/chill_2.10-0.2.2.jar"
+JARS="${JARS}:$LIB_DIR/commons-codec-1.8.jar"
JARS="${JARS}:$LIB_DIR/commons-lang3.jar"
JARS="${JARS}:$LIB_DIR/commons-logging.jar"
JARS="${JARS}:$LIB_DIR/config.jar"
@@ -42,16 +46,21 @@
JARS="${JARS}:$LIB_DIR/jta.jar"
JARS="${JARS}:$LIB_DIR/jul-to-slf4j.jar"
JARS="${JARS}:$LIB_DIR/junit-4.11.jar"
+JARS="${JARS}:$LIB_DIR/kryo-2.17.jar"
JARS="${JARS}:$LIB_DIR/logback-classic.jar"
JARS="${JARS}:$LIB_DIR/logback-core.jar"
-JARS="${JARS}:$LIB_DIR/mongo-java-driver-2.10.1.jar"
+JARS="${JARS}:$LIB_DIR/minlog-1.2.jar"
+JARS="${JARS}:$LIB_DIR/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:$LIB_DIR/netty.jar"
JARS="${JARS}:$LIB_DIR/nscala-time_2.10-0.2.0.jar"
-JARS="${JARS}:$LIB_DIR/play_2.10.jar"
+JARS="${JARS}:$LIB_DIR/objenesis-1.2.jar"
JARS="${JARS}:$LIB_DIR/play-exceptions.jar"
JARS="${JARS}:$LIB_DIR/play-iteratees_2.10.jar"
+JARS="${JARS}:$LIB_DIR/play_2.10.jar"
+JARS="${JARS}:$LIB_DIR/predictionio-admin_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/predictionio-commons_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/predictionio-output_2.10-${VERSION}.jar"
+JARS="${JARS}:$LIB_DIR/reflectasm-1.07-shaded.jar"
JARS="${JARS}:$LIB_DIR/sbt-link.jar"
JARS="${JARS}:$LIB_DIR/scala-arm_2.10.jar"
JARS="${JARS}:$LIB_DIR/scala-io-core_2.10.jar"
@@ -59,13 +68,9 @@
JARS="${JARS}:$LIB_DIR/scala-library.jar"
JARS="${JARS}:$LIB_DIR/scala-reflect.jar"
JARS="${JARS}:$LIB_DIR/scala-stm_2.10.0.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-concurrent_2.10.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-core_2.10.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-effect_2.10.jar"
JARS="${JARS}:$LIB_DIR/signpost-commonshttp4.jar"
JARS="${JARS}:$LIB_DIR/signpost-core.jar"
JARS="${JARS}:$LIB_DIR/slf4j-api.jar"
-JARS="${JARS}:$LIB_DIR/specs2_2.10.jar"
JARS="${JARS}:$LIB_DIR/templates_2.10.jar"
mkdir -p $ADMIN_DIR
diff --git a/dist/bin/start-api.sh b/dist/bin/start-api.sh
index a2273ec..0266371 100755
--- a/dist/bin/start-api.sh
+++ b/dist/bin/start-api.sh
@@ -17,14 +17,18 @@
LIB_DIR="$BASE/lib"
-JARS="$LIB_DIR/predictionio-api_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/akka-actor_2.10.jar"
JARS="${JARS}:$LIB_DIR/akka-slf4j_2.10.jar"
+JARS="${JARS}:$LIB_DIR/asm-4.0.jar"
+JARS="${JARS}:$LIB_DIR/asm-commons-4.0.jar"
+JARS="${JARS}:$LIB_DIR/asm-tree-4.0.jar"
JARS="${JARS}:$LIB_DIR/async-http-client.jar"
-JARS="${JARS}:$LIB_DIR/casbah-commons_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-core_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-gridfs_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-query_2.10-2.5.0.jar"
+JARS="${JARS}:$LIB_DIR/bijection-core_2.10-0.3.0.jar"
+JARS="${JARS}:$LIB_DIR/casbah-commons_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-core_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-gridfs_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-query_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/chill_2.10-0.2.2.jar"
JARS="${JARS}:$LIB_DIR/commons-codec-1.7.jar"
JARS="${JARS}:$LIB_DIR/commons-lang3.jar"
JARS="${JARS}:$LIB_DIR/commons-logging.jar"
@@ -42,16 +46,21 @@
JARS="${JARS}:$LIB_DIR/jta.jar"
JARS="${JARS}:$LIB_DIR/jul-to-slf4j.jar"
JARS="${JARS}:$LIB_DIR/junit-4.11.jar"
+JARS="${JARS}:$LIB_DIR/kryo-2.17.jar"
JARS="${JARS}:$LIB_DIR/logback-classic.jar"
JARS="${JARS}:$LIB_DIR/logback-core.jar"
-JARS="${JARS}:$LIB_DIR/mongo-java-driver-2.10.1.jar"
+JARS="${JARS}:$LIB_DIR/minlog-1.2.jar"
+JARS="${JARS}:$LIB_DIR/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:$LIB_DIR/netty.jar"
JARS="${JARS}:$LIB_DIR/nscala-time_2.10-0.2.0.jar"
-JARS="${JARS}:$LIB_DIR/play_2.10.jar"
+JARS="${JARS}:$LIB_DIR/objenesis-1.2.jar"
JARS="${JARS}:$LIB_DIR/play-exceptions.jar"
JARS="${JARS}:$LIB_DIR/play-iteratees_2.10.jar"
+JARS="${JARS}:$LIB_DIR/play_2.10.jar"
+JARS="${JARS}:$LIB_DIR/predictionio-api_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/predictionio-commons_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/predictionio-output_2.10-${VERSION}.jar"
+JARS="${JARS}:$LIB_DIR/reflectasm-1.07-shaded.jar"
JARS="${JARS}:$LIB_DIR/sbt-link.jar"
JARS="${JARS}:$LIB_DIR/scala-arm_2.10.jar"
JARS="${JARS}:$LIB_DIR/scala-io-core_2.10.jar"
@@ -59,13 +68,9 @@
JARS="${JARS}:$LIB_DIR/scala-library.jar"
JARS="${JARS}:$LIB_DIR/scala-reflect.jar"
JARS="${JARS}:$LIB_DIR/scala-stm_2.10.0.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-concurrent_2.10.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-core_2.10.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-effect_2.10.jar"
JARS="${JARS}:$LIB_DIR/signpost-commonshttp4.jar"
JARS="${JARS}:$LIB_DIR/signpost-core.jar"
JARS="${JARS}:$LIB_DIR/slf4j-api.jar"
-JARS="${JARS}:$LIB_DIR/specs2_2.10.jar"
JARS="${JARS}:$LIB_DIR/templates_2.10.jar"
mkdir -p $API_DIR
diff --git a/dist/bin/start-scheduler.sh b/dist/bin/start-scheduler.sh
index 3416353..d13bbc7 100755
--- a/dist/bin/start-scheduler.sh
+++ b/dist/bin/start-scheduler.sh
@@ -17,20 +17,24 @@
LIB_DIR="$BASE/lib"
-JARS="$LIB_DIR/predictionio-scheduler_2.10-${VERSION}.jar"
JARS="${JARS}:$LIB_DIR/akka-actor_2.10.jar"
JARS="${JARS}:$LIB_DIR/akka-slf4j_2.10.jar"
JARS="${JARS}:$LIB_DIR/antlr.jar"
+JARS="${JARS}:$LIB_DIR/asm-4.0.jar"
+JARS="${JARS}:$LIB_DIR/asm-commons-4.0.jar"
JARS="${JARS}:$LIB_DIR/asm-commons.jar"
-JARS="${JARS}:$LIB_DIR/asm.jar"
+JARS="${JARS}:$LIB_DIR/asm-tree-4.0.jar"
JARS="${JARS}:$LIB_DIR/asm-tree.jar"
JARS="${JARS}:$LIB_DIR/asm-util.jar"
+JARS="${JARS}:$LIB_DIR/asm.jar"
JARS="${JARS}:$LIB_DIR/async-http-client.jar"
+JARS="${JARS}:$LIB_DIR/bijection-core_2.10-0.3.0.jar"
JARS="${JARS}:$LIB_DIR/c3p0-0.9.1.1.jar"
-JARS="${JARS}:$LIB_DIR/casbah-commons_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-core_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-gridfs_2.10-2.5.0.jar"
-JARS="${JARS}:$LIB_DIR/casbah-query_2.10-2.5.0.jar"
+JARS="${JARS}:$LIB_DIR/casbah-commons_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-core_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-gridfs_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/casbah-query_2.10-2.6.2.jar"
+JARS="${JARS}:$LIB_DIR/chill_2.10-0.2.2.jar"
JARS="${JARS}:$LIB_DIR/classutil_2.10-1.0.1.jar"
JARS="${JARS}:$LIB_DIR/commons-codec-1.7.jar"
JARS="${JARS}:$LIB_DIR/commons-io-2.4.jar"
@@ -51,32 +55,33 @@
JARS="${JARS}:$LIB_DIR/joda-time.jar"
JARS="${JARS}:$LIB_DIR/jta.jar"
JARS="${JARS}:$LIB_DIR/jul-to-slf4j.jar"
+JARS="${JARS}:$LIB_DIR/kryo-2.17.jar"
JARS="${JARS}:$LIB_DIR/logback-classic.jar"
JARS="${JARS}:$LIB_DIR/logback-core.jar"
-JARS="${JARS}:$LIB_DIR/mongo-java-driver-2.10.1.jar"
+JARS="${JARS}:$LIB_DIR/minlog-1.2.jar"
+JARS="${JARS}:$LIB_DIR/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:$LIB_DIR/mysql-connector-java-5.1.22.jar"
JARS="${JARS}:$LIB_DIR/netty.jar"
JARS="${JARS}:$LIB_DIR/nscala-time_2.10-0.2.0.jar"
-JARS="${JARS}:$LIB_DIR/play_2.10.jar"
+JARS="${JARS}:$LIB_DIR/objenesis-1.2.jar"
JARS="${JARS}:$LIB_DIR/play-exceptions.jar"
JARS="${JARS}:$LIB_DIR/play-iteratees_2.10.jar"
-JARS="${JARS}:$LIB_DIR/predictionio-commons_2.10-${VERSION}.jar"
+JARS="${JARS}:$LIB_DIR/play_2.10.jar"
+JARS="${JARS}:$LIB_DIR/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:$LIB_DIR/predictionio-scheduler_2.10-0.5.1.jar"
JARS="${JARS}:$LIB_DIR/quartz-2.1.7.jar"
+JARS="${JARS}:$LIB_DIR/reflectasm-1.07-shaded.jar"
JARS="${JARS}:$LIB_DIR/sbt-link.jar"
JARS="${JARS}:$LIB_DIR/scala-arm_2.10.jar"
JARS="${JARS}:$LIB_DIR/scala-io-core_2.10.jar"
JARS="${JARS}:$LIB_DIR/scala-io-file_2.10.jar"
JARS="${JARS}:$LIB_DIR/scala-library.jar"
JARS="${JARS}:$LIB_DIR/scala-reflect.jar"
-JARS="${JARS}:$LIB_DIR/scalasti_2.10-1.0.0.jar"
JARS="${JARS}:$LIB_DIR/scala-stm_2.10.0.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-concurrent_2.10.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-core_2.10.jar"
-JARS="${JARS}:$LIB_DIR/scalaz-effect_2.10.jar"
+JARS="${JARS}:$LIB_DIR/scalasti_2.10-1.0.0.jar"
JARS="${JARS}:$LIB_DIR/signpost-commonshttp4.jar"
JARS="${JARS}:$LIB_DIR/signpost-core.jar"
JARS="${JARS}:$LIB_DIR/slf4j-api.jar"
-JARS="${JARS}:$LIB_DIR/specs2_2.10.jar"
JARS="${JARS}:$LIB_DIR/stringtemplate.jar"
JARS="${JARS}:$LIB_DIR/templates_2.10.jar"
diff --git a/dist/bin/updatecheck b/dist/bin/updatecheck
index d74dd77..4f49536 100755
--- a/dist/bin/updatecheck
+++ b/dist/bin/updatecheck
@@ -129,23 +129,24 @@
JARS="${JARS}:${PROG_HOME}/lib/asm-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-commons-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-tree-4.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.3.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.6.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.3.jar"
+JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.7.jar"
+JARS="${JARS}:${PROG_HOME}/lib/commons-io-2.4.jar"
JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/kryo-2.21.jar"
+JARS="${JARS}:${PROG_HOME}/lib/kryo-2.17.jar"
JARS="${JARS}:${PROG_HOME}/lib/minlog-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.1.jar"
JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/scopt_2.10-3.1.0.jar"
diff --git a/dist/bin/upgrade b/dist/bin/upgrade
index 53f985b..7d633ed 100755
--- a/dist/bin/upgrade
+++ b/dist/bin/upgrade
@@ -129,24 +129,24 @@
JARS="${JARS}:${PROG_HOME}/lib/asm-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-commons-4.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/asm-tree-4.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.3.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.6.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.6.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.3.jar"
+JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.7.jar"
JARS="${JARS}:${PROG_HOME}/lib/commons-io-2.4.jar"
JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/kryo-2.21.jar"
+JARS="${JARS}:${PROG_HOME}/lib/kryo-2.17.jar"
JARS="${JARS}:${PROG_HOME}/lib/minlog-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-software-manager_2.10-0.5.1.jar"
JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/scopt_2.10-3.1.0.jar"
diff --git a/dist/bin/users b/dist/bin/users
index 0df0e49..73934de 100755
--- a/dist/bin/users
+++ b/dist/bin/users
@@ -126,26 +126,31 @@
PROG_NAME=users
-JARS="${PROG_HOME}/lib/predictionio-users-tool_2.10-0.5.0.jar:"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.5.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.7.jar"
+JARS="${JARS}:${PROG_HOME}/lib/asm-4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/asm-commons-4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/asm-tree-4.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/bijection-core_2.10-0.3.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-commons_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-core_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-gridfs_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/casbah-query_2.10-2.6.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/chill_2.10-0.2.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/commons-codec-1.8.jar"
JARS="${JARS}:${PROG_HOME}/lib/config-1.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/jline-2.9.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-convert-1.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/joda-time-2.1.jar"
-JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.10.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/kryo-2.17.jar"
+JARS="${JARS}:${PROG_HOME}/lib/minlog-1.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/mongo-java-driver-2.11.2.jar"
JARS="${JARS}:${PROG_HOME}/lib/nscala-time_2.10-0.2.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.0.jar"
+JARS="${JARS}:${PROG_HOME}/lib/objenesis-1.2.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-commons_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/predictionio-users-tool_2.10-0.5.1.jar"
+JARS="${JARS}:${PROG_HOME}/lib/reflectasm-1.07.jar"
JARS="${JARS}:${PROG_HOME}/lib/scala-library-2.10.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-concurrent_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-core_2.10-7.0.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/scalaz-effect_2.10-7.0.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/slf4j-api-1.6.0.jar"
JARS="${JARS}:${PROG_HOME}/lib/slf4j-nop-1.6.0.jar"
-JARS="${JARS}:${PROG_HOME}/lib/specs2_2.10-1.13.jar"
JVM_OPT="$JVM_OPT -Dconfig.file=${PROG_HOME}/conf/predictionio.conf -Dio.prediction.base=$PROG_HOME"
diff --git a/dist/conf/init.json b/dist/conf/init.json
index ab02db9..48e844e 100644
--- a/dist/conf/init.json
+++ b/dist/conf/init.json
@@ -1,7 +1,7 @@
{
"systeminfos": {
"version": {
- "value": "0.5.0",
+ "value": "0.5.1",
"description": "PredictionIO version"
}
},
diff --git a/dist/conf/predictionio.conf b/dist/conf/predictionio.conf
index f3295be..71f47f2 100644
--- a/dist/conf/predictionio.conf
+++ b/dist/conf/predictionio.conf
@@ -75,30 +75,30 @@
io.prediction.commons.modeldata.training.db.port=27017
# PredictionIO Algorithms
-pdio-knnitembased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-pdio-latestrank.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-pdio-randomrank.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-itembased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-parallelals.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-knnuserbased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-thresholduserbased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-slopeone.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-alswr.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-svdsgd.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-svdplusplus.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
+pdio-knnitembased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+pdio-latestrank.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+pdio-randomrank.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-itembased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-parallelals.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-knnuserbased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-thresholduserbased.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-slopeone.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-alswr.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-svdsgd.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-svdplusplus.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
# PredictionIO generic scalding job
-io.prediction.algorithms.scalding.itemrec.generic.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
+io.prediction.algorithms.scalding.itemrec.generic.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
# Itemrec Scala Mahout Algorithms
-io.prediction.algorithms.mahout.itemrec.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Scala-Mahout-assembly-0.5.0.jar
+io.prediction.algorithms.mahout.itemrec.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Algorithms-Scala-Mahout-assembly-0.5.1.jar
# Mahout core job
io.prediction.algorithms.mahout-core-job.jar=${io.prediction.base}/vendors/mahout-0.8-snapshot/mahout-core-0.8-SNAPSHOT-job.jar
# PredictionIO Offline Evaluation
-io.prediction.evaluations.scalding.itemrec.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-Hadoop-Scalding-assembly-0.5.0.jar
-io.prediction.evaluations.itemrec.topkitems.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-TopKItems-assembly-0.5.0.jar
-io.prediction.evaluations.itemrec.trainingtestsplit.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-Scala-TrainingTestSplitTime-assembly-0.5.0.jar
-io.prediction.evaluations.itemrec.paramgen.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-ParamGen-assembly-0.5.0.jar
+io.prediction.evaluations.scalding.itemrec.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-Hadoop-Scalding-assembly-0.5.1.jar
+io.prediction.evaluations.itemrec.topkitems.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-TopKItems-assembly-0.5.1.jar
+io.prediction.evaluations.itemrec.trainingtestsplit.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-Scala-TrainingTestSplitTime-assembly-0.5.1.jar
+io.prediction.evaluations.itemrec.paramgen.jar=${io.prediction.base}/lib/PredictionIO-Process-ItemRec-Evaluations-ParamGen-assembly-0.5.1.jar
diff --git a/dist/conf/versions.json b/dist/conf/versions.json
index 46ddddc..64a5bf9 100644
--- a/dist/conf/versions.json
+++ b/dist/conf/versions.json
@@ -1,9 +1,13 @@
{
- "latest": "0.5.0",
+ "latest": "0.5.1",
"versions": {
"0.5.0": {
"binaries": "http://download.prediction.io/PredictionIO-0.5.0.zip",
"sources": "http://download.prediction.io/PredictionIO-0.5.0-sources.zip"
+ },
+ "0.5.1": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.5.1.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.5.1-sources.zip"
}
}
}
diff --git a/output/build.sbt b/output/build.sbt
index 2da03c2..edbefdd 100644
--- a/output/build.sbt
+++ b/output/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Output"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
@@ -9,7 +9,7 @@
scalacOptions in (Compile, doc) ++= Opts.doc.title("PredictionIO Output API Documentation")
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"com.github.nscala-time" %% "nscala-time" % "0.2.0",
"junit" % "junit" % "4.11",
"org.specs2" %% "specs2" % "1.14" % "test"
diff --git a/process/commons/hadoop/scalding/build.sbt b/process/commons/hadoop/scalding/build.sbt
index 00b34c5..df14d3a 100644
--- a/process/commons/hadoop/scalding/build.sbt
+++ b/process/commons/hadoop/scalding/build.sbt
@@ -2,7 +2,7 @@
organization := "io.prediction"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -31,7 +31,7 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/algorithms/hadoop/scalding/build.sbt b/process/engines/itemrec/algorithms/hadoop/scalding/build.sbt
index 080960b..c8fb995 100644
--- a/process/engines/itemrec/algorithms/hadoop/scalding/build.sbt
+++ b/process/engines/itemrec/algorithms/hadoop/scalding/build.sbt
@@ -4,7 +4,7 @@
packageOptions += Package.ManifestAttributes(java.util.jar.Attributes.Name.MAIN_CLASS -> "com.twitter.scalding.Tool")
-version in ThisBuild := "0.5.0"
+version in ThisBuild := "0.5.1"
scalaVersion in ThisBuild := "2.9.2"
diff --git a/process/engines/itemrec/algorithms/hadoop/scalding/generic/build.sbt b/process/engines/itemrec/algorithms/hadoop/scalding/generic/build.sbt
index 481a495..8ab8d8b 100644
--- a/process/engines/itemrec/algorithms/hadoop/scalding/generic/build.sbt
+++ b/process/engines/itemrec/algorithms/hadoop/scalding/generic/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Algorithms Hadoop Scalding Generic"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/algorithms/hadoop/scalding/knnitembased/build.sbt b/process/engines/itemrec/algorithms/hadoop/scalding/knnitembased/build.sbt
index 0410b38..ada17d9 100644
--- a/process/engines/itemrec/algorithms/hadoop/scalding/knnitembased/build.sbt
+++ b/process/engines/itemrec/algorithms/hadoop/scalding/knnitembased/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Algorithms Hadoop Scalding KNNItemBased"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/algorithms/hadoop/scalding/latestrank/build.sbt b/process/engines/itemrec/algorithms/hadoop/scalding/latestrank/build.sbt
index df8dc1d..18bd9e9 100644
--- a/process/engines/itemrec/algorithms/hadoop/scalding/latestrank/build.sbt
+++ b/process/engines/itemrec/algorithms/hadoop/scalding/latestrank/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Algorithms Hadoop Scalding LatestRank"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/algorithms/hadoop/scalding/mahout/build.sbt b/process/engines/itemrec/algorithms/hadoop/scalding/mahout/build.sbt
index 7cec06b..056e4c8 100644
--- a/process/engines/itemrec/algorithms/hadoop/scalding/mahout/build.sbt
+++ b/process/engines/itemrec/algorithms/hadoop/scalding/mahout/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Algorithms Hadoop Scalding Mahout"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/algorithms/hadoop/scalding/randomrank/build.sbt b/process/engines/itemrec/algorithms/hadoop/scalding/randomrank/build.sbt
index c9753b2..fd98214 100644
--- a/process/engines/itemrec/algorithms/hadoop/scalding/randomrank/build.sbt
+++ b/process/engines/itemrec/algorithms/hadoop/scalding/randomrank/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Algorithms Hadoop Scalding RandomRank"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/algorithms/scala/mahout/build.sbt b/process/engines/itemrec/algorithms/scala/mahout/build.sbt
index 3672d77..7d8291a 100644
--- a/process/engines/itemrec/algorithms/scala/mahout/build.sbt
+++ b/process/engines/itemrec/algorithms/scala/mahout/build.sbt
@@ -4,7 +4,7 @@
packageOptions += Package.ManifestAttributes(java.util.jar.Attributes.Name.MAIN_CLASS -> "io.prediction.commons.mahout.itemrec.MahoutJob")
-version in ThisBuild:= "0.5.0"
+version in ThisBuild:= "0.5.1"
scalaVersion in ThisBuild:= "2.10.0"
diff --git a/process/engines/itemrec/algorithms/scala/mahout/commons/build.sbt b/process/engines/itemrec/algorithms/scala/mahout/commons/build.sbt
index afa239d..cbe440d 100644
--- a/process/engines/itemrec/algorithms/scala/mahout/commons/build.sbt
+++ b/process/engines/itemrec/algorithms/scala/mahout/commons/build.sbt
@@ -1,7 +1,7 @@
name := "PredictionIO-Process-ItemRec-Algorithms-Scala-Mahout-Commons"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1"
)
// Mahout's dependencies
diff --git a/process/engines/itemrec/evaluations/hadoop/scalding/build.sbt b/process/engines/itemrec/evaluations/hadoop/scalding/build.sbt
index 975cbc7..5214fcb 100644
--- a/process/engines/itemrec/evaluations/hadoop/scalding/build.sbt
+++ b/process/engines/itemrec/evaluations/hadoop/scalding/build.sbt
@@ -4,7 +4,7 @@
packageOptions += Package.ManifestAttributes(java.util.jar.Attributes.Name.MAIN_CLASS -> "com.twitter.scalding.Tool")
-version in ThisBuild := "0.5.0"
+version in ThisBuild := "0.5.1"
scalaVersion in ThisBuild := "2.9.2"
diff --git a/process/engines/itemrec/evaluations/hadoop/scalding/metrics/map/build.sbt b/process/engines/itemrec/evaluations/hadoop/scalding/metrics/map/build.sbt
index 0ee09d9..cbf7e7a 100644
--- a/process/engines/itemrec/evaluations/hadoop/scalding/metrics/map/build.sbt
+++ b/process/engines/itemrec/evaluations/hadoop/scalding/metrics/map/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Evaluations Hadoop Scalding Metrics MAP"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/evaluations/hadoop/scalding/trainingtestsplit/build.sbt b/process/engines/itemrec/evaluations/hadoop/scalding/trainingtestsplit/build.sbt
index 5a43af7..6fecc3d 100644
--- a/process/engines/itemrec/evaluations/hadoop/scalding/trainingtestsplit/build.sbt
+++ b/process/engines/itemrec/evaluations/hadoop/scalding/trainingtestsplit/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemRec Evaluations Hadoop Scalding TrainingTestSplit"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/process/engines/itemrec/evaluations/scala/paramgen/build.sbt b/process/engines/itemrec/evaluations/scala/paramgen/build.sbt
index 19358ca..3b8a80f 100644
--- a/process/engines/itemrec/evaluations/scala/paramgen/build.sbt
+++ b/process/engines/itemrec/evaluations/scala/paramgen/build.sbt
@@ -4,12 +4,12 @@
name := "PredictionIO-Process-ItemRec-Evaluations-ParamGen"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.10.0"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"ch.qos.logback" % "logback-classic" % "1.0.9",
"ch.qos.logback" % "logback-core" % "1.0.9",
"com.typesafe" % "config" % "1.0.0",
diff --git a/process/engines/itemrec/evaluations/scala/topkitems/build.sbt b/process/engines/itemrec/evaluations/scala/topkitems/build.sbt
index 292eba1..29c448d 100644
--- a/process/engines/itemrec/evaluations/scala/topkitems/build.sbt
+++ b/process/engines/itemrec/evaluations/scala/topkitems/build.sbt
@@ -4,13 +4,13 @@
name := "PredictionIO-Process-ItemRec-Evaluations-TopKItems"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.10.0"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-output" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-output" % "0.5.1",
"ch.qos.logback" % "logback-classic" % "1.0.9",
"ch.qos.logback" % "logback-core" % "1.0.9",
"com.github.scala-incubator.io" %% "scala-io-core" % "0.4.2",
diff --git a/process/engines/itemrec/evaluations/scala/trainingtestsplit/build.sbt b/process/engines/itemrec/evaluations/scala/trainingtestsplit/build.sbt
index 3ab5c43..55d3225 100644
--- a/process/engines/itemrec/evaluations/scala/trainingtestsplit/build.sbt
+++ b/process/engines/itemrec/evaluations/scala/trainingtestsplit/build.sbt
@@ -4,12 +4,12 @@
name := "PredictionIO-Process-ItemRec-Evaluations-Scala-TrainingTestSplitTime"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion in ThisBuild := "2.9.2"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1"
)
libraryDependencies += "com.twitter" % "scalding-args_2.9.2" % "0.8.4"
diff --git a/process/engines/itemsim/algorithms/hadoop/scalding/build.sbt b/process/engines/itemsim/algorithms/hadoop/scalding/build.sbt
index e47d47f..6c03b0c 100644
--- a/process/engines/itemsim/algorithms/hadoop/scalding/build.sbt
+++ b/process/engines/itemsim/algorithms/hadoop/scalding/build.sbt
@@ -4,7 +4,7 @@
packageOptions += Package.ManifestAttributes(java.util.jar.Attributes.Name.MAIN_CLASS -> "com.twitter.scalding.Tool")
-version in ThisBuild := "0.5.0"
+version in ThisBuild := "0.5.1"
scalaVersion in ThisBuild := "2.9.2"
diff --git a/process/engines/itemsim/algorithms/hadoop/scalding/itemsimcf/build.sbt b/process/engines/itemsim/algorithms/hadoop/scalding/itemsimcf/build.sbt
index 33bb5e9..7482bc2 100644
--- a/process/engines/itemsim/algorithms/hadoop/scalding/itemsimcf/build.sbt
+++ b/process/engines/itemsim/algorithms/hadoop/scalding/itemsimcf/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Process ItemSim Algorithms Hadoop Scalding ItemSimCF"
-version := "0.5.0"
+version := "0.5.1"
scalaVersion := "2.9.2"
@@ -18,8 +18,8 @@
)
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-process-commons-hadoop-scalding" % "0.5.1"
)
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
diff --git a/servers/admin/project/Build.scala b/servers/admin/project/Build.scala
index 30a6830..d7b5367 100644
--- a/servers/admin/project/Build.scala
+++ b/servers/admin/project/Build.scala
@@ -5,11 +5,11 @@
object ApplicationBuild extends Build {
val appName = "predictionio-admin"
- val appVersion = "0.5.0"
+ val appVersion = "0.5.1"
val appDependencies = Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-output" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-output" % "0.5.1",
"com.github.nscala-time" %% "nscala-time" % "0.2.0",
"commons-codec" % "commons-codec" % "1.8"
)
diff --git a/servers/api/project/Build.scala b/servers/api/project/Build.scala
index 67c7816..7e9bae2 100644
--- a/servers/api/project/Build.scala
+++ b/servers/api/project/Build.scala
@@ -5,11 +5,11 @@
object ApplicationBuild extends Build {
val appName = "predictionio-api"
- val appVersion = "0.5.0"
+ val appVersion = "0.5.1"
val appDependencies = Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
- "io.prediction" %% "predictionio-output" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
+ "io.prediction" %% "predictionio-output" % "0.5.1"
)
val main = play.Project(appName, appVersion, appDependencies).settings(
diff --git a/servers/scheduler/conf/application.conf b/servers/scheduler/conf/application.conf
index 1f5b4a1..e18912f 100644
--- a/servers/scheduler/conf/application.conf
+++ b/servers/scheduler/conf/application.conf
@@ -86,23 +86,23 @@
io.prediction.commons.settings.db.port=27017
# PredictionIO Algorithms
-pdio-knnitembased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-pdio-latestrank.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-pdio-randomrank.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-itembased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-parallelals.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-knnuserbased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-thresholduserbased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-slopeone.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-alswr.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-svdsgd.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
-mahout-svdplusplus.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
+pdio-knnitembased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+pdio-latestrank.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+pdio-randomrank.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-itembased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-parallelals.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-knnuserbased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-thresholduserbased.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-slopeone.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-alswr.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-svdsgd.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
+mahout-svdplusplus.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
# PredictionIO generic scalding job
-io.prediction.algorithms.scalding.itemrec.generic.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.0.jar
+io.prediction.algorithms.scalding.itemrec.generic.jar=${io.prediction.itemrec.base}/algorithms/hadoop/scalding/target/PredictionIO-Process-ItemRec-Algorithms-Hadoop-Scalding-assembly-0.5.1.jar
# Itemrec Scala Mahout Algorithms
-io.prediction.algorithms.mahout.itemrec.jar=${io.prediction.itemrec.base}/algorithms/scala/mahout/target/PredictionIO-Process-ItemRec-Algorithms-Scala-Mahout-assembly-0.5.0.jar
+io.prediction.algorithms.mahout.itemrec.jar=${io.prediction.itemrec.base}/algorithms/scala/mahout/target/PredictionIO-Process-ItemRec-Algorithms-Scala-Mahout-assembly-0.5.1.jar
# Mahout core job
io.prediction.algorithms.mahout-core-job.jar=${io.prediction.base}/vendors/mahout-0.8-snapshot/mahout-core-0.8-SNAPSHOT-job.jar
diff --git a/servers/scheduler/project/Build.scala b/servers/scheduler/project/Build.scala
index 3b32f6e..66d342e 100644
--- a/servers/scheduler/project/Build.scala
+++ b/servers/scheduler/project/Build.scala
@@ -5,11 +5,11 @@
object ApplicationBuild extends Build {
val appName = "predictionio-scheduler"
- val appVersion = "0.5.0"
+ val appVersion = "0.5.1"
val appDependencies = Seq(
"commons-io" % "commons-io" % "2.4",
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"mysql" % "mysql-connector-java" % "5.1.22",
"org.clapper" %% "scalasti" % "1.0.0",
"org.quartz-scheduler" % "quartz" % "2.1.7",
diff --git a/tools/conncheck/build.sbt b/tools/conncheck/build.sbt
index 761913b..5c3da4c 100644
--- a/tools/conncheck/build.sbt
+++ b/tools/conncheck/build.sbt
@@ -1,13 +1,13 @@
name := "PredictionIO Connection Check Tool"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
scalaVersion := "2.10.0"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"org.slf4j" % "slf4j-nop" % "1.6.0"
)
diff --git a/tools/migration/0.5/appdata/build.sbt b/tools/migration/0.5/appdata/build.sbt
index 4f5bb1f..d5bbe66 100644
--- a/tools/migration/0.5/appdata/build.sbt
+++ b/tools/migration/0.5/appdata/build.sbt
@@ -1,13 +1,13 @@
name := "PredictionIO 0.4 to 0.5 appdata Migration"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
scalaVersion := "2.10.0"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"org.mongodb" %% "casbah" % "2.6.2",
"org.slf4j" % "slf4j-nop" % "1.6.0"
)
diff --git a/tools/settingsinit/build.sbt b/tools/settingsinit/build.sbt
index c103d4e..49032c9 100644
--- a/tools/settingsinit/build.sbt
+++ b/tools/settingsinit/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Settings Initialization"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
@@ -9,7 +9,7 @@
scalacOptions ++= Seq("-deprecation")
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0"
+ "io.prediction" %% "predictionio-commons" % "0.5.1"
)
resolvers ++= Seq(
diff --git a/tools/softwaremanager/build.sbt b/tools/softwaremanager/build.sbt
index e32a6be..20f8171 100644
--- a/tools/softwaremanager/build.sbt
+++ b/tools/softwaremanager/build.sbt
@@ -1,6 +1,6 @@
name := "PredictionIO Software Manager"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
@@ -9,12 +9,14 @@
scalacOptions ++= Seq("-deprecation")
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"com.github.scopt" %% "scopt" % "3.1.0",
"commons-io" % "commons-io" % "2.4",
"org.slf4j" % "slf4j-nop" % "1.6.0"
)
+libraryDependencies += "org.specs2" %% "specs2" % "2.1.1" % "test"
+
resolvers ++= Seq(
"Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
)
diff --git a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Backup.scala b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Backup.scala
index f6dc246..dcca44d 100644
--- a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Backup.scala
+++ b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Backup.scala
@@ -27,7 +27,7 @@
def main(args: Array[String]) {
val parser = new scopt.OptionParser[BackupConfig]("backup") {
- head("PredictionIO Backup Utility", "0.5.0")
+ head("PredictionIO Backup Utility", "0.5.1")
help("help") text("prints this usage text")
arg[String]("<backup directory>") action { (x, c) =>
c.copy(backupDir = x)
diff --git a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Restore.scala b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Restore.scala
index 26bb91f..d0bfce0 100644
--- a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Restore.scala
+++ b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Restore.scala
@@ -27,7 +27,7 @@
def main(args: Array[String]) {
val parser = new scopt.OptionParser[RestoreConfig]("restore") {
- head("PredictionIO Restore Utility", "0.5.0")
+ head("PredictionIO Restore Utility", "0.5.1")
help("help") text("prints this usage text")
opt[Unit]("upgrade") action { (_, c) =>
c.copy(upgrade = true)
diff --git a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/UpdateCheck.scala b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/UpdateCheck.scala
index abb3cb3..97d763a 100644
--- a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/UpdateCheck.scala
+++ b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/UpdateCheck.scala
@@ -6,6 +6,8 @@
import scala.sys.process._
import scala.util.parsing.json.JSON
+import org.apache.commons.io.FileUtils._
+
case class UpdateCheckConfig(localVersion: String = "", answer: String = "")
object UpdateCheck {
@@ -14,7 +16,7 @@
def main(args: Array[String]) {
val parser = new scopt.OptionParser[UpdateCheckConfig]("updatecheck") {
- head("PredictionIO Update Checker", "0.5.0")
+ head("PredictionIO Update Checker", "0.5.1")
help("help") text("prints this usage text")
opt[String]("localVersion") action { (x, c) =>
c.copy(localVersion = x)
@@ -30,7 +32,7 @@
val installed = systemInfos.get("version") map { _.value } getOrElse {
println("Cannot detect any previous version. Possible causes:")
- println("- PredictionIO version <= 0.4.2")
+ println("- PredictionIO version < 0.5.0")
println("- misconfiguration (wrong settings database pointers)")
println("- settings database has been corrupted")
println()
@@ -75,7 +77,7 @@
if (latest != installed) {
val answer = updateCheckConfig.answer
val choice = if (answer == "") {
- println("Your PredictionIO is not the latest version. Do you want to download the latest binaries?")
+ println("Your PredictionIO is not the latest version. Do you want to download and install the latest binaries?")
val input = readLine("Enter 'YES' to proceed: ")
input match {
case "YES" => "y"
@@ -87,6 +89,15 @@
val binaries = versions.binaries(latest) map { b =>
println(s"Retrieving ${b}...")
s"curl -O ${b}".!
+ val filename = b.split('/').reverse.head
+ val dirname = filename.split('.').dropRight(1).mkString(".")
+ val extractedDir = getFile(dirname)
+ if (extractedDir.exists) { deleteDirectory(extractedDir) }
+ s"unzip ${filename}".!
+ if (localVersion != "")
+ s"${dirname}/bin/upgrade --localVersion ${localVersion} ${config.base} ${dirname}".!
+ else
+ s"${dirname}/bin/upgrade ${config.base} ${dirname}".!
}
}
case "n" => println(s"Your PredictionIO is not the latest version. A new version ${latest} is available.")
diff --git a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Upgrade.scala b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Upgrade.scala
index d35f3c6..a3767d9 100644
--- a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Upgrade.scala
+++ b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Upgrade.scala
@@ -1,7 +1,5 @@
package io.prediction.tools.softwaremanager
-import io.prediction.commons._
-
import scala.collection.JavaConversions._
import scala.sys.process._
@@ -10,17 +8,25 @@
import com.typesafe.config._
import org.apache.commons.io.FileUtils._
-case class UpgradeConfig(current: File = new File("."), latest: File = new File("."), nomigrate: Boolean = false)
+case class UpgradeConfig(
+ current: File = new File("."),
+ latest: File = new File("."),
+ nomigrate: Boolean = false,
+ localVersion: String = "")
/** Upgrades previous version to current version. */
object Upgrade {
def main(args: Array[String]) {
+ val thisVersion = "0.5.1"
val parser = new scopt.OptionParser[UpgradeConfig]("upgrade") {
- head("PredictionIO Software Upgrade Utility", "0.5.0")
+ head("PredictionIO Software Upgrade Utility", thisVersion)
help("help") text("prints this usage text")
opt[Unit]("nomigrate") action { (_, c) =>
c.copy(nomigrate = true)
} text("upgrade from previous version backup data")
+ opt[String]("localVersion") action { (x, c) =>
+ c.copy(localVersion = x)
+ } text("use a local file for version information")
arg[File]("<current>") action { (x, c) =>
c.copy(current = x)
} text("directory containing current PredictionIO setup")
@@ -31,12 +37,12 @@
parser.parse(args, UpgradeConfig()) map { upgradeConfig =>
var stepcount = 1
- val steps = 7
+ val steps = 9
val currentDir = upgradeConfig.current
val latestDir = upgradeConfig.latest
val current = currentDir.getCanonicalPath
val latest = latestDir.getCanonicalPath
- val nomigrate = upgradeConfig.nomigrate
+ var nomigrate = upgradeConfig.nomigrate
println("PredictionIO Software Upgrade Utility")
println()
@@ -51,28 +57,91 @@
sys.exit(1)
}
+ if ((getFile(currentDir, "backup")).exists) {
+ println(s"${current}/backup already exists. Please move away any previous backups and try again.")
+ sys.exit(1)
+ }
+
val dirs = Seq("bin", "conf", "lib")
- /** Make a backup. */
- println(s"Step ${stepcount} of ${steps}: Creating backup of PredictionIO settings...")
- println()
- val backupBin = s"${current}/bin/backup"
- val backupBinFile = new File(backupBin)
- if (!backupBinFile.exists && !nomigrate) {
- println("Backup utility cannot be found. Possible causes:")
- println("- PredictionIO version <= 0.4.2")
- println("- the binary is missing")
+ /** Determine current version */
+ System.setProperty("config.file", s"${current}/conf/predictionio.conf")
+ val config = new io.prediction.commons.Config()
+ val systemInfos = config.getSettingsSystemInfos
+ val installed = systemInfos.get("version") map { _.value }
+ installed getOrElse {
+ println("Cannot detect any previous version. Possible causes:")
+ println("- PredictionIO version < 0.5.0")
+ println("- misconfiguration (wrong settings database pointers)")
+ println("- settings database has been corrupted")
println()
- println("To force upgrading without migrating settings, add --nomigrate to the command. Aborting.")
- sys.exit(1)
- } else if (!nomigrate) {
- val backupCode = s"${current}/bin/backup ${current}/backup/settings".!
- if (backupCode != 0) {
- println("Backup utility returned non-zero exit code. Aborting.")
- sys.exit(1)
+ println("No migration of settings will be performed if you choose to continue the upgrade.")
+ val input = readLine("Enter 'YES' to proceed: ")
+ val interrupt = input match {
+ case "YES" => false
+ case _ => true
}
- } else {
+ if (interrupt) { sys.exit(1) } else { nomigrate = true }
+ }
+ val installedVersion = installed.get
+
+ /** Backup existing data. */
+ println(s"Step ${stepcount} of ${steps}: Backup existing settings...")
+ println()
+
+ if (nomigrate) {
println("Not migrating settings. Skipping backup.")
+ } else {
+ backup(s"${current}/bin/backup", s"${current}/backup/settings/${installedVersion}", current)
+ }
+
+ println()
+ stepcount += 1
+
+ /** Determine updaters to download. */
+ println(s"Step ${stepcount} of ${steps}: Downloading any additional settings updaters...")
+ println()
+
+ val versions = if (upgradeConfig.localVersion == "") { Versions() } else { Versions(upgradeConfig.localVersion) }
+ val updateSequence = versions.updateSequence(installedVersion, thisVersion)
+
+ if (nomigrate) {
+ println("Not migrating settings. Skipping...")
+ } else {
+ if (updateSequence.size == 0) {
+ println(s"Upgrading from ${installedVersion} to ${thisVersion} requires no additional updaters.")
+ } else {
+ val updaterDirFile = new java.io.File(s"${current}/updaters")
+ if (!updaterDirFile.exists && !updaterDirFile.mkdirs) {
+ println(s"Unable to create directory ${updaterDirFile}. Aborting...")
+ sys.exit(1)
+ }
+ var i = 0
+ updateSequence foreach { v =>
+ versions.updater(v) map { u =>
+ println(s"Downloading ${u}...")
+ if (Process(s"curl -O ${u}", updaterDirFile).! != 0) {
+ println("Download failed. Aborting...")
+ sys.exit(1)
+ }
+ val filename = u.split('/').reverse.head
+ val dirname = filename.split('.').dropRight(1).mkString(".")
+ val extractedUpdaterDir = getFile(updaterDirFile, dirname)
+ if (extractedUpdaterDir.exists) { deleteDirectory(extractedUpdaterDir) }
+ if (Process(s"unzip ${filename}", updaterDirFile).! != 0) {
+ println("Updater extraction failed. Aborting...")
+ sys.exit(1)
+ }
+ if (i == 0)
+ restore(s"${updaterDirFile}/${dirname}/bin/restore", s"${current}/backup/settings/${installedVersion}", current)
+ else
+ restore(s"${updaterDirFile}/${dirname}/bin/restore", s"${current}/backup/settings/${updateSequence(i-1)}", current)
+
+ backup(s"${updaterDirFile}/${dirname}/bin/backup", s"${current}/backup/settings/${v}", current)
+ }
+ i += 1
+ }
+ }
}
println()
stepcount += 1
@@ -151,15 +220,60 @@
if (nomigrate) {
println("Not migrating settings. Skipping restore.")
} else {
- val restoreCode = s"${current}/bin/restore --upgrade ${current}/backup/settings".!
- if (restoreCode != 0) {
- println("Restore utility returned non-zero exit code. Aborting.")
- sys.exit(1)
- }
+ if (updateSequence.size > 0)
+ restore(s"${current}/bin/restore", s"${current}/backup/settings/${updateSequence.last}", current)
+ else
+ restore(s"${current}/bin/restore", s"${current}/backup/settings/${installedVersion}", current)
}
println()
+ stepcount += 1
+
+ println(s"Step ${stepcount} of ${steps}: Running setup for new version...")
+ println()
+ s"${current}/bin/setup.sh".!
+ println()
println("Upgrade completed.")
}
}
+
+ private def backup(backupBin: String, backupDir: String, base: String) = {
+ val backupBinFile = new File(backupBin)
+ if (!backupBinFile.exists) {
+ println("Backup utility cannot be found. Possible causes:")
+ println("- PredictionIO version < 0.5.0")
+ println("- the binary is missing")
+ println()
+ println("To force upgrading without migrating settings, add --nomigrate to the command. Aborting.")
+ sys.exit(1)
+ } else {
+ if (Process(
+ s"${backupBin} ${backupDir}",
+ None,
+ ("JVM_OPT", s"-Dconfig.file=${base}/conf/predictionio.conf -Dio.prediction.base=${base}")).! != 0) {
+ println("Backup utility returned non-zero exit code. Aborting.")
+ sys.exit(1)
+ }
+ }
+ }
+
+ private def restore(restoreBin: String, restoreDir: String, base: String) = {
+ val restoreBinFile = new File(restoreBin)
+ if (!restoreBinFile.exists) {
+ println("Restore utility cannot be found. Possible causes:")
+ println("- PredictionIO version < 0.5.0")
+ println("- the binary is missing")
+ println()
+ println("To force upgrading without migrating settings, add --nomigrate to the command. Aborting.")
+ sys.exit(1)
+ } else {
+ if (Process(
+ s"${restoreBin} --upgrade ${restoreDir}",
+ None,
+ ("JVM_OPT", s"-Dconfig.file=${base}/conf/predictionio.conf -Dio.prediction.base=${base}")).! != 0) {
+ println("Restore utility returned non-zero exit code. Aborting.")
+ sys.exit(1)
+ }
+ }
+ }
}
diff --git a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Versions.scala b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Versions.scala
index 8121a38..a6479c7 100644
--- a/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Versions.scala
+++ b/tools/softwaremanager/src/main/scala/io/prediction/tools/softwaremanager/Versions.scala
@@ -33,6 +33,23 @@
private val versions = M.unapply(meta("versions")) getOrElse { throw new VersionsFormatException("Cannot find versions information.") }
+ private def versionToParts(version: String): Seq[Int] = version.split('.').map(_.toInt)
+
+ private def versionLessThan(x: String, y: String): Boolean = {
+ val versionX = versionToParts(x)
+ val versionY = versionToParts(y)
+
+ if (versionX(0) == versionY(0))
+ if (versionX(1) == versionY(1))
+ versionX(2) < versionY(2)
+ else
+ versionX(1) < versionY(1)
+ else
+ versionX(0) < versionY(0)
+ }
+
+ val sequence = versions.keys.toSeq.sortWith { (x, y) => versionLessThan(x, y) }
+
def version(version: String): Option[Map[String, String]] = versions.get(version) map { MSS.unapply(_) map { Some(_) } getOrElse None } getOrElse None
def binaries(ver: String): Option[String] = version(ver) map { _.get("binaries") map { Some(_) } getOrElse None } getOrElse None
@@ -41,9 +58,18 @@
def updater(ver: String): Option[String] = version(ver) map { _.get("updater") map { Some(_) } getOrElse None } getOrElse None
- def from(ver: String): Option[String] = version(ver) map { _.get("from") map { Some(_) } getOrElse None } getOrElse None
+ def updateRequired(ver: String): Boolean = updater(ver) map { _ => true } getOrElse false
- def via(ver: String): Option[String] = version(ver) map { _.get("via") map { Some(_) } getOrElse None } getOrElse None
+ def updateSequence(fromVersion: String, toVersion: String): Seq[String] = {
+ val seqWithAllUpdates = sequence filter { updateRequired(_) }
+ val seqWithUpdatesUntilTo = seqWithAllUpdates filter { v =>
+ versionLessThan(v, toVersion) || v == toVersion
+ }
+ val seqWithUpdates = seqWithUpdatesUntilTo filterNot { v =>
+ versionLessThan(v, fromVersion) || v == fromVersion
+ }
+ seqWithUpdates.dropRight(1)
+ }
}
object Versions {
diff --git a/tools/softwaremanager/src/test/resources/versions.json b/tools/softwaremanager/src/test/resources/versions.json
new file mode 100644
index 0000000..2414e19
--- /dev/null
+++ b/tools/softwaremanager/src/test/resources/versions.json
@@ -0,0 +1,46 @@
+{
+ "latest": "0.5.0",
+ "versions": {
+ "0.5.0": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.5.0.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.5.0-sources.zip",
+ "updater": "http://download.prediction.io/PredictionIO-0.5.0-updater.zip"
+ },
+ "0.5.1": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.5.1.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.5.1-sources.zip"
+ },
+ "0.6.0": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.6.0.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.6.0-sources.zip"
+ },
+ "0.6.1": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.6.1.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.6.1-sources.zip",
+ "updater": "http://download.prediction.io/PredictionIO-0.6.1-updater.zip"
+ },
+ "0.6.2": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.6.2.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.6.2-sources.zip"
+ },
+ "0.7.0": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.7.0.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.7.0-sources.zip",
+ "updater": "http://download.prediction.io/PredictionIO-0.7.0-updater.zip"
+ },
+ "0.20.0": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.20.0.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.20.0-sources.zip",
+ "updater": "http://download.prediction.io/PredictionIO-0.20.0-updater.zip"
+ },
+ "0.20.1": {
+ "binaries": "http://download.prediction.io/PredictionIO-0.20.1.zip",
+ "sources": "http://download.prediction.io/PredictionIO-0.20.1-sources.zip"
+ },
+ "1.0.0": {
+ "binaries": "http://download.prediction.io/PredictionIO-1.0.0.zip",
+ "sources": "http://download.prediction.io/PredictionIO-1.0.0-sources.zip",
+ "updater": "http://download.prediction.io/PredictionIO-1.0.0-updater.zip"
+ }
+ }
+}
diff --git a/tools/softwaremanager/src/test/scala/io/prediction/tools/softwaremanager/VersionsSpec.scala b/tools/softwaremanager/src/test/scala/io/prediction/tools/softwaremanager/VersionsSpec.scala
new file mode 100644
index 0000000..f4bc216
--- /dev/null
+++ b/tools/softwaremanager/src/test/scala/io/prediction/tools/softwaremanager/VersionsSpec.scala
@@ -0,0 +1,39 @@
+package io.prediction.tools.softwaremanager
+
+import org.specs2._
+import org.specs2.specification.Step
+
+class VersionsSpec extends Specification { def is =
+ "PredictionIO Software Manager Versions Specification" ^
+ p^
+ "load version file" ! load()^
+ "get latest version" ! latestVersion()^
+ "get latest version binaries" ! latestBinaries()^
+ "get latest version sources" ! latestSources()^
+ "get a non-existent updater" ! latestUpdater()^
+ "get version sequence" ! sequence()^
+ "get a version that requires update" ! updateRequired()^
+ "get an update sequence" ! updateSequence()^
+ end
+
+ lazy val versions = Versions(getClass.getResource("/versions.json").getPath)
+
+ def load() = versions must beAnInstanceOf[Versions]
+
+ def latestVersion() = versions.latestVersion must_== "0.5.0"
+
+ def latestBinaries() = versions.binaries(versions.latestVersion) must beSome("http://download.prediction.io/PredictionIO-0.5.0.zip")
+
+ def latestSources() = versions.sources(versions.latestVersion) must beSome("http://download.prediction.io/PredictionIO-0.5.0-sources.zip")
+
+ def latestUpdater() = versions.updater("0.5.1") must beNone
+
+ def sequence() = versions.sequence must_== Seq("0.5.0", "0.5.1", "0.6.0", "0.6.1", "0.6.2", "0.7.0", "0.20.0", "0.20.1", "1.0.0")
+
+ def updateRequired() = versions.updateRequired("0.6.1") must_== true
+
+ def updateSequence() = {
+ (versions.updateSequence("0.5.0", "0.20.1") must_== Seq("0.6.1", "0.7.0")) and
+ (versions.updateSequence("0.6.0", "1.0.0") must_== Seq("0.6.1", "0.7.0", "0.20.0"))
+ }
+}
diff --git a/tools/users/build.sbt b/tools/users/build.sbt
index 1337af2..c577b16 100644
--- a/tools/users/build.sbt
+++ b/tools/users/build.sbt
@@ -1,13 +1,13 @@
name := "PredictionIO Users Tool"
-version := "0.5.0"
+version := "0.5.1"
organization := "io.prediction"
scalaVersion := "2.10.0"
libraryDependencies ++= Seq(
- "io.prediction" %% "predictionio-commons" % "0.5.0",
+ "io.prediction" %% "predictionio-commons" % "0.5.1",
"commons-codec" % "commons-codec" % "1.8",
"jline" % "jline" % "2.9"
)
diff --git a/tools/users/src/main/scala/io/prediction/tools/users/Users.scala b/tools/users/src/main/scala/io/prediction/tools/users/Users.scala
index a10350b..6ba6581 100644
--- a/tools/users/src/main/scala/io/prediction/tools/users/Users.scala
+++ b/tools/users/src/main/scala/io/prediction/tools/users/Users.scala
@@ -16,12 +16,10 @@
sys.exit(1)
}
println("PredictionIO CLI User Management")
- println("1. Add a confirmed user")
- val choice = readLine("Enter a choice: ")
- choice match {
- case "1" => adduser()
- case _ => println("Unknown choice")
- }
+ println()
+ println("This utility currently only support adding users.")
+ println()
+ adduser()
}
def adduser() = {