Permalink
Browse files

init

  • Loading branch information...
0 parents commit e4c4a84b8a143add78243cc43abb9db52ab1d7c3 @jamesward committed Apr 1, 2015
15 .gitignore
@@ -0,0 +1,15 @@
+logs
+project/project
+project/target
+target
+tmp
+.history
+dist
+/.idea
+/*.iml
+/out
+/.idea_modules
+/.classpath
+/.project
+/RUNNING_PID
+/.settings
8 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.
4 README
@@ -0,0 +1,4 @@
+This is your new Play application
+=================================
+
+This file will be packaged with your application, when using `activator dist`.
334 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.2"
+
+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 "$@"
BIN activator-launch-1.3.2.jar
Binary file not shown.
231 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.2
+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%
14 app/controllers/Application.java
@@ -0,0 +1,14 @@
+package controllers;
+
+import play.*;
+import play.mvc.*;
+
+import views.html.*;
+
+public class Application extends Controller {
+
+ public static Result index() {
+ return ok(index.render("Your new application is ready."));
+ }
+
+}
7 app/views/index.scala.html
@@ -0,0 +1,7 @@
+@(message: String)
+
+@main("Welcome to Play") {
+
+ @play20.welcome(message, style = "Java")
+
+}
15 app/views/main.scala.html
@@ -0,0 +1,15 @@
+@(title: String)(content: Html)
+
+<!DOCTYPE html>
+
+<html>
+ <head>
+ <title>@title</title>
+ <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
+ <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
+ <script src="@routes.Assets.at("javascripts/hello.js")" type="text/javascript"></script>
+ </head>
+ <body>
+ @content
+ </body>
+</html>
14 build.sbt
@@ -0,0 +1,14 @@
+name := """play2torial"""
+
+version := "1.0-SNAPSHOT"
+
+lazy val root = (project in file(".")).enablePlugins(PlayJava)
+
+scalaVersion := "2.11.1"
+
+libraryDependencies ++= Seq(
+ javaJdbc,
+ javaEbean,
+ cache,
+ javaWs
+)
72 conf/application.conf
@@ -0,0 +1,72 @@
+# 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.
+application.secret="changeme"
+
+# The application languages
+# ~~~~~
+application.langs="en"
+
+# Global object class
+# ~~~~~
+# Define the Global object class for this application.
+# Default to Global in the root package.
+# application.global=Global
+
+# 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 `conf/my.application.Router`,
+# you may need to define a router file `my.application.routes`.
+# Default to Routes in the root package (and `conf/routes`)
+# application.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=""
+#
+# You can expose this datasource via JNDI if needed (Useful for JPA)
+# db.default.jndiName=DefaultDS
+
+# Evolutions
+# ~~~~~
+# You can disable evolutions if needed
+# evolutionplugin=disabled
+
+# Ebean configuration
+# ~~~~~
+# You can declare as many Ebean servers as you want.
+# By convention, the default server is named `default`
+#
+# ebean.default="models.*"
+
+# Logger
+# ~~~~~
+# You can also configure logback (http://logback.qos.ch/),
+# by providing an application-logger.xml file in the conf directory.
+
+# Root logger:
+logger.root=ERROR
+
+# Logger used by the framework:
+logger.play=INFO
+
+# Logger provided to your application:
+logger.application=DEBUG
+
9 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.at(path="/public", file)
4 project/build.properties
@@ -0,0 +1,4 @@
+#Activator-generated Properties
+#Wed Apr 01 15:41:14 MDT 2015
+template.uuid=f875d6f6-609b-4be0-b365-b1c501866eeb
+sbt.version=0.13.5
18 project/plugins.sbt
@@ -0,0 +1,18 @@
+resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/"
+
+// The Play plugin
+addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.8")
+
+// web plugins
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.0.0")
BIN public/images/favicon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 public/javascripts/hello.js
@@ -0,0 +1,3 @@
+if (window.console) {
+ console.log("Welcome to your Play application's JavaScript!");
+}
0 public/stylesheets/main.css
No changes.
45 test/ApplicationTest.java
@@ -0,0 +1,45 @@
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import org.junit.*;
+
+import play.mvc.*;
+import play.test.*;
+import play.data.DynamicForm;
+import play.data.validation.ValidationError;
+import play.data.validation.Constraints.RequiredValidator;
+import play.i18n.Lang;
+import play.libs.F;
+import play.libs.F.*;
+import play.twirl.api.Content;
+
+import static play.test.Helpers.*;
+import static org.fest.assertions.Assertions.*;
+
+
+/**
+*
+* Simple (JUnit) tests that can call all parts of a play app.
+* If you are interested in mocking a whole application, see the wiki for more details.
+*
+*/
+public class ApplicationTest {
+
+ @Test
+ public void simpleCheck() {
+ int a = 1 + 1;
+ assertThat(a).isEqualTo(2);
+ }
+
+ @Test
+ public void renderTemplate() {
+ Content html = views.html.index.render("Your new application is ready.");
+ assertThat(contentType(html)).isEqualTo("text/html");
+ assertThat(contentAsString(html)).contains("Your new application is ready.");
+ }
+
+
+}
28 test/IntegrationTest.java
@@ -0,0 +1,28 @@
+import org.junit.*;
+
+import play.mvc.*;
+import play.test.*;
+import play.libs.F.*;
+
+import static play.test.Helpers.*;
+import static org.fest.assertions.Assertions.*;
+
+import static org.fluentlenium.core.filter.FilterConstructor.*;
+
+public class IntegrationTest {
+
+ /**
+ * add your integration test here
+ * in this example we just check if the welcome page is being shown
+ */
+ @Test
+ public void test() {
+ running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT, new Callback<TestBrowser>() {
+ public void invoke(TestBrowser browser) {
+ browser.goTo("http://localhost:3333");
+ assertThat(browser.pageSource()).contains("Your new application is ready.");
+ }
+ });
+ }
+
+}

0 comments on commit e4c4a84

Please sign in to comment.