Permalink
Browse files

Add build.gradle and the Gradle Wrapper. You can now run the GAE serv…

…er locally (and/or upload to GAE) with only a JDK installed -- everything else will be auto-downloaded.
  • Loading branch information...
msgilligan committed Jan 24, 2012
1 parent f5371d2 commit 27f0557b2e40114f40d84e23960ca5b9e8085a9e
Showing with 409 additions and 0 deletions.
  1. +2 −0 .gitignore
  2. +151 −0 build.gradle
  3. BIN gradle/wrapper/gradle-wrapper.jar
  4. +6 −0 gradle/wrapper/gradle-wrapper.properties
  5. +168 −0 gradlew
  6. +82 −0 gradlew.bat
View
@@ -5,3 +5,5 @@ web-app/WEB-INF/lib
web-app/WEB-INF/classes
web-app/WEB-INF/appengine-generated
web-app/samples.copy
+build
+.gradle
View
@@ -0,0 +1,151 @@
+/*
+ * build.gradle for iUI
+ * (c) 2012 by the iUI project members
+ *
+ * This file is used to run a local webserver for testing purposes and to
+ * publish to http://demo.iui-js.org on Google App Engine.
+ *
+ * iUI uses ant and build.xml to build the iUI distribution.
+ * (at some point in the future the build.xml functions may be migrated from
+ * ant to gradle)
+ *
+ * To run a local weberver use:
+ * ./gradlew gaeRun
+ *
+ * To publish to GAE run:
+ * ./gradlew gaeUpload
+ *
+ * If you're not an administrator for http://demo.iui-js.org, you'll need to configure
+ * your own instance of GAE -- instructions TBD.
+ */
+
+import org.apache.ivy.plugins.resolver.URLResolver
+
+apply plugin: 'java'
+apply plugin: 'groovy'
+apply plugin: 'gae'
+apply plugin: 'gaelyk'
+apply plugin: 'eclipse'
+apply plugin: 'idea'
+
+def compatibilityVersion = 1.5
+sourceCompatibility = compatibilityVersion
+targetCompatibility = compatibilityVersion
+
+buildscript {
+ gitHub = {
+ def resolver = new URLResolver()
+
+ resolver.with {
+ name = 'GitHub'
+ addArtifactPattern 'http://cloud.github.com/downloads/[organisation]/[module]/[module]-[revision].[ext]'
+ }
+
+ resolver
+ }
+
+ repositories {
+ add gitHub()
+ }
+
+ dependencies {
+ classpath 'bmuschko:gradle-gae-plugin:0.5.1'
+ classpath 'bmuschko:gradle-gaelyk-plugin:0.1'
+ }
+}
+
+repositories {
+ mavenCentral()
+ add gitHub()
+}
+
+sourceSets {
+ main {
+ output.classesDir = file('web-app/WEB-INF/classes')
+ }
+}
+
+dependencies {
+ def gaeVersion = '1.6.0'
+ groovy 'org.codehaus.groovy:groovy-all:1.8.4'
+ compile "com.google.appengine:appengine-api-1.0-sdk:$gaeVersion",
+ "com.google.appengine:appengine-api-labs:$gaeVersion",
+ 'glaforge:gaelyk:1.1'
+
+ testCompile 'org.spockframework:spock-core:0.5-groovy-1.8', {
+ exclude group: 'org.codehaus.groovy', name: 'groovy-all'
+ }
+ testCompile 'marcoVermeulen:gaelyk-spock:0.2',
+ "com.google.appengine:appengine-api-stubs:$gaeVersion",
+ "com.google.appengine:appengine-testing:$gaeVersion",
+ 'javax.servlet:servlet-api:2.5',
+ 'cglib:cglib-nodep:2.2',
+ 'org.objenesis:objenesis:1.2'
+ gaeSdk "com.google.appengine:appengine-java-sdk:$gaeVersion"
+}
+
+webAppDirName = file('web-app')
+
+gae {
+ warDir = file('web-app')
+ downloadSdk = true
+}
+
+clean.doLast {
+ delete sourceSets*.output.classesDir
+}
+
+task copyRuntimeLibraries(type: Sync){
+ def webAppLibDirName = 'web-app/WEB-INF/lib'
+ description = "Copies runtime libraries to $webAppLibDirName."
+ copy{
+ from configurations.runtime
+ into webAppLibDirName
+ }
+}
+
+idea {
+ project {
+ jdkName = compatibilityVersion
+
+ ipr.withXml { provider ->
+ def node = provider.asNode()
+
+ // Set Gradle home
+ def gradleSettings = node.appendNode('component', [name: 'GradleSettings'])
+ gradleSettings.appendNode('option', [name: 'SDK_HOME', value: gradle.gradleHomeDir])
+ }
+ }
+}
+
+eclipse {
+ project {
+ name = 'gaelyk-project'
+ file {
+ whenMerged { project ->
+ project.natures << 'com.google.appengine.eclipse.core.gaeNature'
+ project.natures << 'com.google.gdt.eclipse.core.webAppNature'
+ project.buildCommands << [name: 'com.google.appengine.eclipse.core.enhancerbuilder']
+ project.buildCommands << [name: 'com.google.appengine.eclipse.core.projectValidator']
+ project.buildCommands << [name: 'com.google.gdt.eclipse.core.webAppProjectValidator']
+ }
+ }
+ }
+ classpath {
+ file {
+ withXml { xml ->
+ xml.asNode().classpathentry.find { it.@kind == 'output' && it.@path == 'bin' }.@path = 'web-app/WEB-INF/classes'
+ xml.asNode().appendNode('classpathentry', [kind: 'con', path: 'com.google.appengine.eclipse.core.GAE_CONTAINER'])
+ .appendNode('attributes')
+ .appendNode('attribute', [name: 'org.eclipse.jst.component.nondependency', value: '/web-app/WEB-INF/lib'])
+ xml.asNode().appendNode('classpathentry', [exported: 'true', kind: 'con', path: 'GROOVY_SUPPORT'])
+ .appendNode('attributes')
+ .appendNode('attribute', [name: 'org.eclipse.jst.component.nondependency', value: '/web-app/WEB-INF/lib'])
+ }
+ }
+ }
+}
+
+task wrapper(type: Wrapper) {
+ gradleVersion = '1.0-milestone-4'
+}
Binary file not shown.
@@ -0,0 +1,6 @@
+#Fri Aug 05 23:35:17 CEST 2011
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://repo.gradle.org/gradle/distributions/gradle-1.0-milestone-4-bin.zip
View
168 gradlew
@@ -0,0 +1,168 @@
+#!/bin/bash
+
+##############################################################################
+## ##
+## Gradle wrapper script for UN*X ##
+## ##
+##############################################################################
+
+# Uncomment those lines to set JVM options. GRADLE_OPTS and JAVA_OPTS can be used together.
+# GRADLE_OPTS="$GRADLE_OPTS -Xmx512m"
+# JAVA_OPTS="$JAVA_OPTS -Xmx512m"
+
+GRADLE_APP_NAME=Gradle
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set JAVA_HOME if it's not already set.
+if [ -z "$JAVA_HOME" ] ; then
+ if $darwin ; then
+ [ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] && export JAVA_HOME="/Library/Java/Home"
+ [ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
+ else
+ javaExecutable="`which javac`"
+ [ -z "$javaExecutable" -o "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ] && die "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME."
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ [ `expr "$readLink" : '\([^ ]*\)'` = "no" ] && die "JAVA_HOME not set and readlink not available, please set JAVA_HOME."
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ export JAVA_HOME="$javaHome"
+ fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVACMD" ] && JAVACMD=`cygpath --unix "$JAVACMD"`
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+STARTER_MAIN_CLASS=org.gradle.wrapper.GradleWrapperMain
+CLASSPATH=`dirname "$0"`/gradle/wrapper/gradle-wrapper.jar
+WRAPPER_PROPERTIES=`dirname "$0"`/gradle/wrapper/gradle-wrapper.properties
+# Determine the Java command to use to start the JVM.
+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="java"
+ fi
+fi
+if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+if [ -z "$JAVA_HOME" ] ; then
+ warn "JAVA_HOME environment variable is not set"
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add GRADLE_APP_NAME to the JAVA_OPTS as -Xdock:name
+if $darwin; then
+ JAVA_OPTS="$JAVA_OPTS -Xdock:name=$GRADLE_APP_NAME"
+# we may also want to set -Xdock:image
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+GRADLE_APP_BASE_NAME=`basename "$0"`
+
+exec "$JAVACMD" $JAVA_OPTS $GRADLE_OPTS \
+ -classpath "$CLASSPATH" \
+ -Dorg.gradle.appname="$GRADLE_APP_BASE_NAME" \
+ -Dorg.gradle.wrapper.properties="$WRAPPER_PROPERTIES" \
+ $STARTER_MAIN_CLASS \
+ "$@"
Oops, something went wrong.

0 comments on commit 27f0557

Please sign in to comment.