You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/07/02 04:49:32 UTC
incubator-ignite git commit: # ignite-843 Initial commite for
developing Ignite control center on Play2.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-843-play [created] 15f36d21a
# ignite-843 Initial commite for developing Ignite control center on Play2.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/15f36d21
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/15f36d21
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/15f36d21
Branch: refs/heads/ignite-843-play
Commit: 15f36d21a91832b34d79b2012819e734e9606085
Parents: d3783a1
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 2 09:49:11 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 2 09:49:11 2015 +0700
----------------------------------------------------------------------
modules/control-center/.gitignore | 8 +
modules/control-center/LICENSE | 8 +
modules/control-center/README | 4 +
modules/control-center/activator | 334 +++++++++++++++++++
.../control-center/activator-launch-1.3.5.jar | Bin 0 -> 1213544 bytes
modules/control-center/activator.bat | 231 +++++++++++++
.../app/controllers/Application.scala | 12 +
.../control-center/app/views/index.scala.html | 7 +
.../control-center/app/views/main.scala.html | 15 +
modules/control-center/build.sbt | 20 ++
modules/control-center/conf/application.conf | 44 +++
modules/control-center/conf/logback.xml | 22 ++
modules/control-center/conf/routes | 9 +
modules/control-center/project/build.properties | 4 +
modules/control-center/project/plugins.sbt | 16 +
.../control-center/public/images/favicon.png | Bin 0 -> 687 bytes
.../control-center/public/javascripts/hello.js | 3 +
.../control-center/public/stylesheets/main.css | 0
.../control-center/test/ApplicationSpec.scala | 30 ++
.../control-center/test/IntegrationSpec.scala | 24 ++
20 files changed, 791 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/.gitignore
----------------------------------------------------------------------
diff --git a/modules/control-center/.gitignore b/modules/control-center/.gitignore
new file mode 100644
index 0000000..eb372fc
--- /dev/null
+++ b/modules/control-center/.gitignore
@@ -0,0 +1,8 @@
+logs
+target
+/.idea
+/.idea_modules
+/.classpath
+/.project
+/.settings
+/RUNNING_PID
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/LICENSE
----------------------------------------------------------------------
diff --git a/modules/control-center/LICENSE b/modules/control-center/LICENSE
new file mode 100644
index 0000000..4baedcb
--- /dev/null
+++ b/modules/control-center/LICENSE
@@ -0,0 +1,8 @@
+This software is licensed under the Apache 2 license, quoted below.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project 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.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/README
----------------------------------------------------------------------
diff --git a/modules/control-center/README b/modules/control-center/README
new file mode 100644
index 0000000..ad73c38
--- /dev/null
+++ b/modules/control-center/README
@@ -0,0 +1,4 @@
+This is your new Play application
+=================================
+
+This file will be packaged with your application, when using `activator dist`.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/activator
----------------------------------------------------------------------
diff --git a/modules/control-center/activator b/modules/control-center/activator
new file mode 100644
index 0000000..6e28ceb
--- /dev/null
+++ b/modules/control-center/activator
@@ -0,0 +1,334 @@
+#!/usr/bin/env bash
+
+### ------------------------------- ###
+### Helper methods for BASH scripts ###
+### ------------------------------- ###
+
+realpath () {
+(
+ TARGET_FILE="$1"
+
+ cd "$(dirname "$TARGET_FILE")"
+ TARGET_FILE=$(basename "$TARGET_FILE")
+
+ COUNT=0
+ while [ -L "$TARGET_FILE" -a $COUNT -lt 100 ]
+ do
+ TARGET_FILE=$(readlink "$TARGET_FILE")
+ cd "$(dirname "$TARGET_FILE")"
+ TARGET_FILE=$(basename "$TARGET_FILE")
+ COUNT=$(($COUNT + 1))
+ done
+
+ if [ "$TARGET_FILE" == "." -o "$TARGET_FILE" == ".." ]; then
+ cd "$TARGET_FILE"
+ TARGET_FILEPATH=
+ else
+ TARGET_FILEPATH=/$TARGET_FILE
+ fi
+
+ # make sure we grab the actual windows path, instead of cygwin's path.
+ if ! is_cygwin; then
+ echo "$(pwd -P)/$TARGET_FILE"
+ else
+ echo $(cygwinpath "$(pwd -P)/$TARGET_FILE")
+ fi
+)
+}
+
+# TODO - Do we need to detect msys?
+
+# Uses uname to detect if we're in the odd cygwin environment.
+is_cygwin() {
+ local os=$(uname -s)
+ case "$os" in
+ CYGWIN*) return 0 ;;
+ *) return 1 ;;
+ esac
+}
+
+# This can fix cygwin style /cygdrive paths so we get the
+# windows style paths.
+cygwinpath() {
+ local file="$1"
+ if is_cygwin; then
+ echo $(cygpath -w $file)
+ else
+ echo $file
+ fi
+}
+
+# Make something URI friendly
+make_url() {
+ url="$1"
+ local nospaces=${url// /%20}
+ if is_cygwin; then
+ echo "/${nospaces//\\//}"
+ else
+ echo "$nospaces"
+ fi
+}
+
+# Detect if we should use JAVA_HOME or just try PATH.
+get_java_cmd() {
+ if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
+ echo "$JAVA_HOME/bin/java"
+ else
+ echo "java"
+ fi
+}
+
+echoerr () {
+ echo 1>&2 "$@"
+}
+vlog () {
+ [[ $verbose || $debug ]] && echoerr "$@"
+}
+dlog () {
+ [[ $debug ]] && echoerr "$@"
+}
+execRunner () {
+ # print the arguments one to a line, quoting any containing spaces
+ [[ $verbose || $debug ]] && echo "# Executing command line:" && {
+ for arg; do
+ if printf "%s\n" "$arg" | grep -q ' '; then
+ printf "\"%s\"\n" "$arg"
+ else
+ printf "%s\n" "$arg"
+ fi
+ done
+ echo ""
+ }
+
+ exec "$@"
+}
+addJava () {
+ dlog "[addJava] arg = '$1'"
+ java_args=( "${java_args[@]}" "$1" )
+}
+addApp () {
+ dlog "[addApp] arg = '$1'"
+ sbt_commands=( "${app_commands[@]}" "$1" )
+}
+addResidual () {
+ dlog "[residual] arg = '$1'"
+ residual_args=( "${residual_args[@]}" "$1" )
+}
+addDebugger () {
+ addJava "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1"
+}
+addConfigOpts () {
+ dlog "[addConfigOpts] arg = '$*'"
+ for item in $*
+ do
+ addJava "$item"
+ done
+}
+# a ham-fisted attempt to move some memory settings in concert
+# so they need not be messed around with individually.
+get_mem_opts () {
+ local mem=${1:-1024}
+ local meta=$(( $mem / 4 ))
+ (( $meta > 256 )) || meta=256
+ (( $meta < 1024 )) || meta=1024
+
+ # default is to set memory options but this can be overridden by code section below
+ memopts="-Xms${mem}m -Xmx${mem}m"
+ if [[ "${java_version}" > "1.8" ]]; then
+ extmemopts="-XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=${meta}m"
+ else
+ extmemopts="-XX:PermSize=64m -XX:MaxPermSize=${meta}m"
+ fi
+
+ if [[ "${java_opts}" == *-Xmx* ]] || [[ "${java_opts}" == *-Xms* ]] || [[ "${java_opts}" == *-XX:MaxPermSize* ]] || [[ "${java_opts}" == *-XX:ReservedCodeCacheSize* ]] || [[ "${java_opts}" == *-XX:MaxMetaspaceSize* ]]; then
+ # if we detect any of these settings in ${java_opts} we need to NOT output our settings.
+ # The reason is the Xms/Xmx, if they don't line up, cause errors.
+ memopts=""
+ extmemopts=""
+ fi
+
+ echo "${memopts} ${extmemopts}"
+}
+require_arg () {
+ local type="$1"
+ local opt="$2"
+ local arg="$3"
+ if [[ -z "$arg" ]] || [[ "${arg:0:1}" == "-" ]]; then
+ die "$opt requires <$type> argument"
+ fi
+}
+is_function_defined() {
+ declare -f "$1" > /dev/null
+}
+
+# If we're *not* running in a terminal, and we don't have any arguments, then we need to add the 'ui' parameter
+detect_terminal_for_ui() {
+ [[ ! -t 0 ]] && [[ "${#residual_args}" == "0" ]] && {
+ addResidual "ui"
+ }
+ # SPECIAL TEST FOR MAC
+ [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]] && [[ "${#residual_args}" == "0" ]] && {
+ echo "Detected MAC OSX launched script...."
+ echo "Swapping to UI"
+ addResidual "ui"
+ }
+}
+
+# Processes incoming arguments and places them in appropriate global variables. called by the run method.
+process_args () {
+ while [[ $# -gt 0 ]]; do
+ case "$1" in
+ -h|-help) usage; exit 1 ;;
+ -v|-verbose) verbose=1 && shift ;;
+ -d|-debug) debug=1 && shift ;;
+ -mem) require_arg integer "$1" "$2" && app_mem="$2" && shift 2 ;;
+ -jvm-debug)
+ if echo "$2" | grep -E ^[0-9]+$ > /dev/null; then
+ addDebugger "$2" && shift
+ else
+ addDebugger 9999
+ fi
+ shift ;;
+ -java-home) require_arg path "$1" "$2" && java_cmd="$2/bin/java" && shift 2 ;;
+ -D*) addJava "$1" && shift ;;
+ -J*) addJava "${1:2}" && shift ;;
+ *) addResidual "$1" && shift ;;
+ esac
+ done
+
+ is_function_defined process_my_args && {
+ myargs=("${residual_args[@]}")
+ residual_args=()
+ process_my_args "${myargs[@]}"
+ }
+}
+
+# Actually runs the script.
+run() {
+ # TODO - check for sane environment
+
+ # process the combined args, then reset "$@" to the residuals
+ process_args "$@"
+ detect_terminal_for_ui
+ set -- "${residual_args[@]}"
+ argumentCount=$#
+
+ #check for jline terminal fixes on cygwin
+ if is_cygwin; then
+ stty -icanon min 1 -echo > /dev/null 2>&1
+ addJava "-Djline.terminal=jline.UnixTerminal"
+ addJava "-Dsbt.cygwin=true"
+ fi
+
+ # run sbt
+ execRunner "$java_cmd" \
+ "-Dactivator.home=$(make_url "$activator_home")" \
+ $(get_mem_opts $app_mem) \
+ ${java_opts[@]} \
+ ${java_args[@]} \
+ -jar "$app_launcher" \
+ "${app_commands[@]}" \
+ "${residual_args[@]}"
+
+ local exit_code=$?
+ if is_cygwin; then
+ stty icanon echo > /dev/null 2>&1
+ fi
+ exit $exit_code
+}
+
+# Loads a configuration file full of default command line options for this script.
+loadConfigFile() {
+ cat "$1" | sed '/^\#/d'
+}
+
+### ------------------------------- ###
+### Start of customized settings ###
+### ------------------------------- ###
+usage() {
+ cat <<EOM
+Usage: $script_name <command> [options]
+
+ Command:
+ ui Start the Activator UI
+ new [name] [template-id] Create a new project with [name] using template [template-id]
+ list-templates Print all available template names
+ -h | -help Print this message
+
+ Options:
+ -v | -verbose Make this runner chattier
+ -d | -debug Set sbt log level to debug
+ -mem <integer> Set memory options (default: $sbt_mem, which is $(get_mem_opts $sbt_mem))
+ -jvm-debug <port> Turn on JVM debugging, open at the given port.
+
+ # java version (default: java from PATH, currently $(java -version 2>&1 | grep version))
+ -java-home <path> Alternate JAVA_HOME
+
+ # jvm options and output control
+ -Dkey=val Pass -Dkey=val directly to the java runtime
+ -J-X Pass option -X directly to the java runtime
+ (-J is stripped)
+
+ # environment variables (read from context)
+ JAVA_OPTS Environment variable, if unset uses ""
+ SBT_OPTS Environment variable, if unset uses ""
+ ACTIVATOR_OPTS Environment variable, if unset uses ""
+
+In the case of duplicated or conflicting options, the order above
+shows precedence: environment variables lowest, command line options highest.
+EOM
+}
+
+### ------------------------------- ###
+### Main script ###
+### ------------------------------- ###
+
+declare -a residual_args
+declare -a java_args
+declare -a app_commands
+declare -r real_script_path="$(realpath "$0")"
+declare -r activator_home="$(realpath "$(dirname "$real_script_path")")"
+declare -r app_version="1.3.5"
+
+declare -r app_launcher="${activator_home}/activator-launch-${app_version}.jar"
+declare -r script_name=activator
+java_cmd=$(get_java_cmd)
+declare -r java_opts=( "${ACTIVATOR_OPTS[@]}" "${SBT_OPTS[@]}" "${JAVA_OPTS[@]}" "${java_opts[@]}" )
+userhome="$HOME"
+if is_cygwin; then
+ # cygwin sets home to something f-d up, set to real windows homedir
+ userhome="$USERPROFILE"
+fi
+declare -r activator_user_home_dir="${userhome}/.activator"
+declare -r java_opts_config_home="${activator_user_home_dir}/activatorconfig.txt"
+declare -r java_opts_config_version="${activator_user_home_dir}/${app_version}/activatorconfig.txt"
+
+# Now check to see if it's a good enough version
+declare -r java_version=$("$java_cmd" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+if [[ "$java_version" == "" ]]; then
+ echo
+ echo No java installations was detected.
+ echo Please go to http://www.java.com/getjava/ and download
+ echo
+ exit 1
+elif [[ ! "$java_version" > "1.6" ]]; then
+ echo
+ echo The java installation you have is not up to date
+ echo Activator requires at least version 1.6+, you have
+ echo version $java_version
+ echo
+ echo Please go to http://www.java.com/getjava/ and download
+ echo a valid Java Runtime and install before running Activator.
+ echo
+ exit 1
+fi
+
+# if configuration files exist, prepend their contents to the java args so it can be processed by this runner
+# a "versioned" config trumps one on the top level
+if [[ -f "$java_opts_config_version" ]]; then
+ addConfigOpts $(loadConfigFile "$java_opts_config_version")
+elif [[ -f "$java_opts_config_home" ]]; then
+ addConfigOpts $(loadConfigFile "$java_opts_config_home")
+fi
+
+run "$@"
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/activator-launch-1.3.5.jar
----------------------------------------------------------------------
diff --git a/modules/control-center/activator-launch-1.3.5.jar b/modules/control-center/activator-launch-1.3.5.jar
new file mode 100644
index 0000000..3563b27
Binary files /dev/null and b/modules/control-center/activator-launch-1.3.5.jar differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/activator.bat
----------------------------------------------------------------------
diff --git a/modules/control-center/activator.bat b/modules/control-center/activator.bat
new file mode 100644
index 0000000..e884dda
--- /dev/null
+++ b/modules/control-center/activator.bat
@@ -0,0 +1,231 @@
+@REM activator launcher script
+@REM
+@REM Environment:
+@REM In order for Activator to work you must have Java available on the classpath
+@REM JAVA_HOME - location of a JDK home dir (optional if java on path)
+@REM CFG_OPTS - JVM options (optional)
+@REM Configuration:
+@REM activatorconfig.txt found in the ACTIVATOR_HOME or ACTIVATOR_HOME/ACTIVATOR_VERSION
+@setlocal enabledelayedexpansion
+
+@echo off
+
+set "var1=%~1"
+if defined var1 (
+ if "%var1%"=="help" (
+ echo.
+ echo Usage activator [options] [command]
+ echo.
+ echo Commands:
+ echo ui Start the Activator UI
+ echo new [name] [template-id] Create a new project with [name] using template [template-id]
+ echo list-templates Print all available template names
+ echo help Print this message
+ echo.
+ echo Options:
+ echo -jvm-debug [port] Turn on JVM debugging, open at the given port. Defaults to 9999 if no port given.
+ echo.
+ echo Environment variables ^(read from context^):
+ echo JAVA_OPTS Environment variable, if unset uses ""
+ echo SBT_OPTS Environment variable, if unset uses ""
+ echo ACTIVATOR_OPTS Environment variable, if unset uses ""
+ echo.
+ echo Please note that in order for Activator to work you must have Java available on the classpath
+ echo.
+ goto :end
+ )
+)
+
+if "%ACTIVATOR_HOME%"=="" (
+ set "ACTIVATOR_HOME=%~dp0"
+ @REM remove trailing "\" from path
+ set ACTIVATOR_HOME=!ACTIVATOR_HOME:~0,-1!
+)
+
+set ERROR_CODE=0
+set APP_VERSION=1.3.5
+set ACTIVATOR_LAUNCH_JAR=activator-launch-%APP_VERSION%.jar
+
+rem Detect if we were double clicked, although theoretically A user could
+rem manually run cmd /c
+for %%x in (%cmdcmdline%) do if %%~x==/c set DOUBLECLICKED=1
+
+rem FIRST we load a config file of extra options (if there is one)
+set "CFG_FILE_HOME=%UserProfile%\.activator\activatorconfig.txt"
+set "CFG_FILE_VERSION=%UserProfile%\.activator\%APP_VERSION%\activatorconfig.txt"
+set CFG_OPTS=
+if exist %CFG_FILE_VERSION% (
+ FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%CFG_FILE_VERSION%") DO (
+ set DO_NOT_REUSE_ME=%%i
+ rem ZOMG (Part #2) WE use !! here to delay the expansion of
+ rem CFG_OPTS, otherwise it remains "" for this loop.
+ set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
+ )
+)
+if "%CFG_OPTS%"=="" (
+ if exist %CFG_FILE_HOME% (
+ FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%CFG_FILE_HOME%") DO (
+ set DO_NOT_REUSE_ME=%%i
+ rem ZOMG (Part #2) WE use !! here to delay the expansion of
+ rem CFG_OPTS, otherwise it remains "" for this loop.
+ set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
+ )
+ )
+)
+
+rem We use the value of the JAVACMD environment variable if defined
+set _JAVACMD=%JAVACMD%
+
+if "%_JAVACMD%"=="" (
+ if not "%JAVA_HOME%"=="" (
+ if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
+
+ rem if there is a java home set we make sure it is the first picked up when invoking 'java'
+ SET "PATH=%JAVA_HOME%\bin;%PATH%"
+ )
+)
+
+if "%_JAVACMD%"=="" set _JAVACMD=java
+
+rem Detect if this java is ok to use.
+for /F %%j in ('"%_JAVACMD%" -version 2^>^&1') do (
+ if %%~j==java set JAVAINSTALLED=1
+ if %%~j==openjdk set JAVAINSTALLED=1
+)
+
+rem Detect the same thing about javac
+if "%_JAVACCMD%"=="" (
+ if not "%JAVA_HOME%"=="" (
+ if exist "%JAVA_HOME%\bin\javac.exe" set "_JAVACCMD=%JAVA_HOME%\bin\javac.exe"
+ )
+)
+if "%_JAVACCMD%"=="" set _JAVACCMD=javac
+for /F %%j in ('"%_JAVACCMD%" -version 2^>^&1') do (
+ if %%~j==javac set JAVACINSTALLED=1
+)
+
+rem BAT has no logical or, so we do it OLD SCHOOL! Oppan Redmond Style
+set JAVAOK=true
+if not defined JAVAINSTALLED set JAVAOK=false
+if not defined JAVACINSTALLED set JAVAOK=false
+
+if "%JAVAOK%"=="false" (
+ echo.
+ echo A Java JDK is not installed or can't be found.
+ if not "%JAVA_HOME%"=="" (
+ echo JAVA_HOME = "%JAVA_HOME%"
+ )
+ echo.
+ echo Please go to
+ echo http://www.oracle.com/technetwork/java/javase/downloads/index.html
+ echo and download a valid Java JDK and install before running Activator.
+ echo.
+ echo If you think this message is in error, please check
+ echo your environment variables to see if "java.exe" and "javac.exe" are
+ echo available via JAVA_HOME or PATH.
+ echo.
+ if defined DOUBLECLICKED pause
+ exit /B 1
+)
+
+rem Check what Java version is being used to determine what memory options to use
+for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
+ set JAVA_VERSION=%%g
+)
+
+rem Strips away the " characters
+set JAVA_VERSION=%JAVA_VERSION:"=%
+
+rem TODO Check if there are existing mem settings in JAVA_OPTS/CFG_OPTS and use those instead of the below
+for /f "delims=. tokens=1-3" %%v in ("%JAVA_VERSION%") do (
+ set MAJOR=%%v
+ set MINOR=%%w
+ set BUILD=%%x
+
+ set META_SIZE=-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=256M
+ if "!MINOR!" LSS "8" (
+ set META_SIZE=-XX:PermSize=64M -XX:MaxPermSize=256M
+ )
+
+ set MEM_OPTS=!META_SIZE!
+ )
+
+rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config.
+set _JAVA_OPTS=%JAVA_OPTS%
+if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=%CFG_OPTS%
+
+set DEBUG_OPTS=
+
+rem Loop through the arguments, building remaining args in args variable
+set args=
+:argsloop
+if not "%~1"=="" (
+ rem Checks if the argument contains "-D" and if true, adds argument 1 with 2 and puts an equal sign between them.
+ rem This is done since batch considers "=" to be a delimiter so we need to circumvent this behavior with a small hack.
+ set arg1=%~1
+ if "!arg1:~0,2!"=="-D" (
+ set "args=%args% "%~1"="%~2""
+ shift
+ shift
+ goto argsloop
+ )
+
+ if "%~1"=="-jvm-debug" (
+ if not "%~2"=="" (
+ rem This piece of magic somehow checks that an argument is a number
+ for /F "delims=0123456789" %%i in ("%~2") do (
+ set var="%%i"
+ )
+ if defined var (
+ rem Not a number, assume no argument given and default to 9999
+ set JPDA_PORT=9999
+ ) else (
+ rem Port was given, shift arguments
+ set JPDA_PORT=%~2
+ shift
+ )
+ ) else (
+ set JPDA_PORT=9999
+ )
+ shift
+
+ set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=!JPDA_PORT!
+ goto argsloop
+ )
+ rem else
+ set "args=%args% "%~1""
+ shift
+ goto argsloop
+)
+
+:run
+
+if "!args!"=="" (
+ if defined DOUBLECLICKED (
+ set CMDS="ui"
+ ) else set CMDS=!args!
+) else set CMDS=!args!
+
+rem We add a / in front, so we get file:///C: instead of file://C:
+rem Java considers the later a UNC path.
+rem We also attempt a solid effort at making it URI friendly.
+rem We don't even bother with UNC paths.
+set JAVA_FRIENDLY_HOME_1=/!ACTIVATOR_HOME:\=/!
+set JAVA_FRIENDLY_HOME=/!JAVA_FRIENDLY_HOME_1: =%%20!
+
+rem Checks if the command contains spaces to know if it should be wrapped in quotes or not
+set NON_SPACED_CMD=%_JAVACMD: =%
+if "%_JAVACMD%"=="%NON_SPACED_CMD%" %_JAVACMD% %DEBUG_OPTS% %MEM_OPTS% %ACTIVATOR_OPTS% %SBT_OPTS% %_JAVA_OPTS% "-Dactivator.home=%JAVA_FRIENDLY_HOME%" -jar "%ACTIVATOR_HOME%\%ACTIVATOR_LAUNCH_JAR%" %CMDS%
+if NOT "%_JAVACMD%"=="%NON_SPACED_CMD%" "%_JAVACMD%" %DEBUG_OPTS% %MEM_OPTS% %ACTIVATOR_OPTS% %SBT_OPTS% %_JAVA_OPTS% "-Dactivator.home=%JAVA_FRIENDLY_HOME%" -jar "%ACTIVATOR_HOME%\%ACTIVATOR_LAUNCH_JAR%" %CMDS%
+
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+
+@endlocal
+
+exit /B %ERROR_CODE%
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/app/controllers/Application.scala
----------------------------------------------------------------------
diff --git a/modules/control-center/app/controllers/Application.scala b/modules/control-center/app/controllers/Application.scala
new file mode 100644
index 0000000..e5ab8ab
--- /dev/null
+++ b/modules/control-center/app/controllers/Application.scala
@@ -0,0 +1,12 @@
+package controllers
+
+import play.api._
+import play.api.mvc._
+
+class Application extends Controller {
+
+ def index = Action {
+ Ok(views.html.index("Your new application is ready."))
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/app/views/index.scala.html
----------------------------------------------------------------------
diff --git a/modules/control-center/app/views/index.scala.html b/modules/control-center/app/views/index.scala.html
new file mode 100644
index 0000000..d6a6b22
--- /dev/null
+++ b/modules/control-center/app/views/index.scala.html
@@ -0,0 +1,7 @@
+@(message: String)
+
+@main("Welcome to Play") {
+
+ @play20.welcome(message)
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/app/views/main.scala.html
----------------------------------------------------------------------
diff --git a/modules/control-center/app/views/main.scala.html b/modules/control-center/app/views/main.scala.html
new file mode 100644
index 0000000..aff0eff
--- /dev/null
+++ b/modules/control-center/app/views/main.scala.html
@@ -0,0 +1,15 @@
+@(title: String)(content: Html)
+
+<!DOCTYPE html>
+
+<html lang="en">
+ <head>
+ <title>@title</title>
+ <link rel="stylesheet" media="screen" href="@routes.Assets.versioned("stylesheets/main.css")">
+ <link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/favicon.png")">
+ <script src="@routes.Assets.versioned("javascripts/hello.js")" type="text/javascript"></script>
+ </head>
+ <body>
+ @content
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/build.sbt
----------------------------------------------------------------------
diff --git a/modules/control-center/build.sbt b/modules/control-center/build.sbt
new file mode 100644
index 0000000..bed8c86
--- /dev/null
+++ b/modules/control-center/build.sbt
@@ -0,0 +1,20 @@
+name := """control-center"""
+
+version := "1.0-SNAPSHOT"
+
+lazy val root = (project in file(".")).enablePlugins(PlayScala)
+
+scalaVersion := "2.11.6"
+
+libraryDependencies ++= Seq(
+ jdbc,
+ cache,
+ ws,
+ specs2 % Test
+)
+
+resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
+
+// Play provides two styles of routers, one expects its actions to be injected, the
+// other, legacy style, accesses its actions statically.
+routesGenerator := InjectedRoutesGenerator
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/conf/application.conf
----------------------------------------------------------------------
diff --git a/modules/control-center/conf/application.conf b/modules/control-center/conf/application.conf
new file mode 100644
index 0000000..f7422fe
--- /dev/null
+++ b/modules/control-center/conf/application.conf
@@ -0,0 +1,44 @@
+# This is the main configuration file for the application.
+# ~~~~~
+
+# Secret key
+# ~~~~~
+# The secret key is used to secure cryptographics functions.
+#
+# This must be changed for production, but we recommend not changing it in this file.
+#
+# See http://www.playframework.com/documentation/latest/ApplicationSecret for more details.
+play.crypto.secret = "changeme"
+
+# The application languages
+# ~~~~~
+play.i18n.langs = [ "en" ]
+
+# Router
+# ~~~~~
+# Define the Router object to use for this application.
+# This router will be looked up first when the application is starting up,
+# so make sure this is the entry point.
+# Furthermore, it's assumed your route file is named properly.
+# So for an application router like `my.application.Router`,
+# you may need to define a router file `conf/my.application.routes`.
+# Default to Routes in the root package (and conf/routes)
+# play.http.router = my.application.Routes
+
+# Database configuration
+# ~~~~~
+# You can declare as many datasources as you want.
+# By convention, the default datasource is named `default`
+#
+# db.default.driver=org.h2.Driver
+# db.default.url="jdbc:h2:mem:play"
+# db.default.user=sa
+# db.default.password=""
+
+# Evolutions
+# ~~~~~
+# You can disable evolutions if needed
+# play.evolutions.enabled=false
+
+# You can disable evolutions for a specific datasource if necessary
+# play.evolutions.db.default.enabled=false
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/conf/logback.xml
----------------------------------------------------------------------
diff --git a/modules/control-center/conf/logback.xml b/modules/control-center/conf/logback.xml
new file mode 100644
index 0000000..6045363
--- /dev/null
+++ b/modules/control-center/conf/logback.xml
@@ -0,0 +1,22 @@
+<configuration>
+
+ <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%coloredLevel - %logger - %message%n%xException</pattern>
+ </encoder>
+ </appender>
+
+ <!--
+ The logger name is typically the Java/Scala package name.
+ This configures the log level to log at for a package and its children packages.
+ -->
+ <logger name="play" level="INFO" />
+ <logger name="application" level="DEBUG" />
+
+ <root level="ERROR">
+ <appender-ref ref="STDOUT" />
+ </root>
+
+</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/conf/routes
----------------------------------------------------------------------
diff --git a/modules/control-center/conf/routes b/modules/control-center/conf/routes
new file mode 100644
index 0000000..e71a0bd
--- /dev/null
+++ b/modules/control-center/conf/routes
@@ -0,0 +1,9 @@
+# Routes
+# This file defines all application routes (Higher priority routes first)
+# ~~~~
+
+# Home page
+GET / controllers.Application.index
+
+# Map static resources from the /public folder to the /assets URL path
+GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/project/build.properties
----------------------------------------------------------------------
diff --git a/modules/control-center/project/build.properties b/modules/control-center/project/build.properties
new file mode 100644
index 0000000..87f7e9a
--- /dev/null
+++ b/modules/control-center/project/build.properties
@@ -0,0 +1,4 @@
+#Activator-generated Properties
+#Thu Jul 02 09:41:16 KRAT 2015
+template.uuid=49a31253-85ed-4c4f-9041-f2f030591a8d
+sbt.version=0.13.8
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/project/plugins.sbt
----------------------------------------------------------------------
diff --git a/modules/control-center/project/plugins.sbt b/modules/control-center/project/plugins.sbt
new file mode 100644
index 0000000..cbef63b
--- /dev/null
+++ b/modules/control-center/project/plugins.sbt
@@ -0,0 +1,16 @@
+// The Play plugin
+addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.1")
+
+// web plugins
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.3")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.7")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.0")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/public/images/favicon.png
----------------------------------------------------------------------
diff --git a/modules/control-center/public/images/favicon.png b/modules/control-center/public/images/favicon.png
new file mode 100644
index 0000000..c7d92d2
Binary files /dev/null and b/modules/control-center/public/images/favicon.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/public/javascripts/hello.js
----------------------------------------------------------------------
diff --git a/modules/control-center/public/javascripts/hello.js b/modules/control-center/public/javascripts/hello.js
new file mode 100644
index 0000000..209fbee
--- /dev/null
+++ b/modules/control-center/public/javascripts/hello.js
@@ -0,0 +1,3 @@
+if (window.console) {
+ console.log("Welcome to your Play application's JavaScript!");
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/public/stylesheets/main.css
----------------------------------------------------------------------
diff --git a/modules/control-center/public/stylesheets/main.css b/modules/control-center/public/stylesheets/main.css
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/test/ApplicationSpec.scala
----------------------------------------------------------------------
diff --git a/modules/control-center/test/ApplicationSpec.scala b/modules/control-center/test/ApplicationSpec.scala
new file mode 100644
index 0000000..036a94e
--- /dev/null
+++ b/modules/control-center/test/ApplicationSpec.scala
@@ -0,0 +1,30 @@
+import org.specs2.mutable._
+import org.specs2.runner._
+import org.junit.runner._
+
+import play.api.test._
+import play.api.test.Helpers._
+
+/**
+ * Add your spec here.
+ * You can mock out a whole application including requests, plugins etc.
+ * For more information, consult the wiki.
+ */
+@RunWith(classOf[JUnitRunner])
+class ApplicationSpec extends Specification {
+
+ "Application" should {
+
+ "send 404 on a bad request" in new WithApplication{
+ route(FakeRequest(GET, "/boum")) must beSome.which (status(_) == NOT_FOUND)
+ }
+
+ "render the index page" in new WithApplication{
+ val home = route(FakeRequest(GET, "/")).get
+
+ status(home) must equalTo(OK)
+ contentType(home) must beSome.which(_ == "text/html")
+ contentAsString(home) must contain ("Your new application is ready.")
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15f36d21/modules/control-center/test/IntegrationSpec.scala
----------------------------------------------------------------------
diff --git a/modules/control-center/test/IntegrationSpec.scala b/modules/control-center/test/IntegrationSpec.scala
new file mode 100644
index 0000000..652edde
--- /dev/null
+++ b/modules/control-center/test/IntegrationSpec.scala
@@ -0,0 +1,24 @@
+import org.specs2.mutable._
+import org.specs2.runner._
+import org.junit.runner._
+
+import play.api.test._
+import play.api.test.Helpers._
+
+/**
+ * add your integration spec here.
+ * An integration test will fire up a whole play application in a real (or headless) browser
+ */
+@RunWith(classOf[JUnitRunner])
+class IntegrationSpec extends Specification {
+
+ "Application" should {
+
+ "work from within a browser" in new WithBrowser {
+
+ browser.goTo("http://localhost:" + port)
+
+ browser.pageSource must contain("Your new application is ready.")
+ }
+ }
+}