You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dl...@apache.org on 2016/06/10 13:53:56 UTC

[1/4] incubator-quarks git commit: gradle: .gitignores for gradle build

Repository: incubator-quarks
Updated Branches:
  refs/heads/master 7924cc614 -> a660de40c


gradle: .gitignores for gradle build


Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/d5cc0cfb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/d5cc0cfb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/d5cc0cfb

Branch: refs/heads/master
Commit: d5cc0cfb85343558b45c071a6ce5386c1466833b
Parents: 7924cc6
Author: BJ Hargrave <ha...@us.ibm.com>
Authored: Mon Jun 6 15:53:55 2016 -0400
Committer: BJ Hargrave <ha...@us.ibm.com>
Committed: Wed Jun 8 14:18:43 2016 -0400

----------------------------------------------------------------------
 .gitignore | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/d5cc0cfb/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 06edd2b..4259980 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,6 @@
 
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
+
+/.gradle/
+build/


[2/4] incubator-quarks git commit: gradle: Add gradle wrapper

Posted by dl...@apache.org.
gradle: Add gradle wrapper


Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/9574ab08
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/9574ab08
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/9574ab08

Branch: refs/heads/master
Commit: 9574ab0891d452bf1c91b54048ae2e316edd7f6f
Parents: d5cc0cf
Author: BJ Hargrave <ha...@us.ibm.com>
Authored: Mon Jun 6 15:54:16 2016 -0400
Committer: BJ Hargrave <ha...@us.ibm.com>
Committed: Wed Jun 8 14:19:00 2016 -0400

----------------------------------------------------------------------
 .gradle-wrapper/gradle-wrapper.jar        | Bin 0 -> 53556 bytes
 .gradle-wrapper/gradle-wrapper.properties |   5 +
 gradlew                                   | 164 +++++++++++++++++++++++++
 gradlew.bat                               |  90 ++++++++++++++
 4 files changed, 259 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/9574ab08/.gradle-wrapper/gradle-wrapper.jar
----------------------------------------------------------------------
diff --git a/.gradle-wrapper/gradle-wrapper.jar b/.gradle-wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..ca78035
Binary files /dev/null and b/.gradle-wrapper/gradle-wrapper.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/9574ab08/.gradle-wrapper/gradle-wrapper.properties
----------------------------------------------------------------------
diff --git a/.gradle-wrapper/gradle-wrapper.properties b/.gradle-wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..b66f3c1
--- /dev/null
+++ b/.gradle-wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/9574ab08/gradlew
----------------------------------------------------------------------
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..a8ac9b9
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+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
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# 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
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/.gradle-wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+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
+    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
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "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 maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # 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
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/9574ab08/gradlew.bat
----------------------------------------------------------------------
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..57e1569
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\.gradle-wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega


[4/4] incubator-quarks git commit: gradle: Update ServerUtil to find webapps folder in gradle build

Posted by dl...@apache.org.
gradle: Update ServerUtil to find webapps folder in gradle build


Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/a660de40
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/a660de40
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/a660de40

Branch: refs/heads/master
Commit: a660de40c98a745cfe8b54c6c7add2c896573f48
Parents: ded57f9
Author: BJ Hargrave <ha...@us.ibm.com>
Authored: Wed Jun 8 15:32:29 2016 -0400
Committer: BJ Hargrave <ha...@us.ibm.com>
Committed: Thu Jun 9 19:16:04 2016 -0400

----------------------------------------------------------------------
 build.gradle                                    |  1 +
 .../java/quarks/console/server/ServerUtil.java  | 45 ++++++++++++--------
 2 files changed, 29 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/a660de40/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 7620aeb..83845a4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -70,6 +70,7 @@ subprojects {
 
   test {
     include '**/*Test.class'
+    systemProperty 'quarks.test.top.dir.file.path', rootProject.projectDir
     testLogging {
       exceptionFormat 'full'
     }

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/a660de40/console/server/src/main/java/quarks/console/server/ServerUtil.java
----------------------------------------------------------------------
diff --git a/console/server/src/main/java/quarks/console/server/ServerUtil.java b/console/server/src/main/java/quarks/console/server/ServerUtil.java
index e201ff5..c886553 100644
--- a/console/server/src/main/java/quarks/console/server/ServerUtil.java
+++ b/console/server/src/main/java/quarks/console/server/ServerUtil.java
@@ -19,10 +19,17 @@ under the License.
 
 package quarks.console.server;
 
+import java.io.IOException;
 import java.io.File;
-import java.io.FilenameFilter;
 import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
 import java.security.ProtectionDomain;
+import java.util.ArrayList;
+import java.util.List;
 
 public class ServerUtil {
 
@@ -45,31 +52,35 @@ public class ServerUtil {
      * @return a File object
      */
     private File getTopDirFilePath() {
+        String topDirProp = System.getProperty("quarks.test.top.dir.file.path");
+        if (topDirProp != null) {
+          return new File(topDirProp);
+        }
         File jarFile = new File(getPath());
         return jarFile.getParentFile().getParentFile().getParentFile();
     }
 
-    // create new filename filter
-    FilenameFilter fileNameFilter = new FilenameFilter() {
-
-        @Override
-        public boolean accept(File dir, String name) {
-            if (name.equals("webapps")) {
-                return true;
-            }
-            else {
-                return false;
-            }
-        }
-    };
     /**
      * Returns the File object representing the "webapps" directory
      * @return a File object or null if the "webapps" directory is not found
      */
     private File getWarFilePath() {
-        File[] foundFiles = getTopDirFilePath().listFiles(fileNameFilter);
-        if (foundFiles.length == 1) {
-            return foundFiles[0];
+        List<File> foundFiles = new ArrayList<>();
+        try {
+            Files.walkFileTree(getTopDirFilePath().toPath(), new SimpleFileVisitor<Path>() {
+                @Override
+                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
+                    if (dir.endsWith("webapps")) {
+                      foundFiles.add(dir.toFile());
+                    }
+                    return FileVisitResult.CONTINUE;
+                }
+            });
+        } catch (IOException e) {
+          // end of file searching
+        }
+        if (foundFiles.size() == 1) {
+            return foundFiles.get(0);
         }
         return null;
     }


[3/4] incubator-quarks git commit: gradle: Initial Java 8 build

Posted by dl...@apache.org.
gradle: Initial Java 8 build


Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/ded57f9b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/ded57f9b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/ded57f9b

Branch: refs/heads/master
Commit: ded57f9beb7215abf9a30b811a678fa60ed8c378
Parents: 9574ab0
Author: BJ Hargrave <ha...@us.ibm.com>
Authored: Wed Jun 8 14:16:21 2016 -0400
Committer: BJ Hargrave <ha...@us.ibm.com>
Committed: Thu Jun 9 19:16:04 2016 -0400

----------------------------------------------------------------------
 analytics/math3/build.gradle                    |  8 ++
 analytics/sensors/build.gradle                  |  7 ++
 api/execution/build.gradle                      |  4 +
 api/function/build.gradle                       |  3 +
 api/graph/build.gradle                          |  4 +
 api/oplet/build.gradle                          |  6 ++
 api/topology/build.gradle                       |  6 ++
 api/window/build.gradle                         |  4 +
 apps/iot/build.gradle                           |  6 ++
 apps/runtime/build.gradle                       |  7 ++
 build.gradle                                    | 99 ++++++++++++++++++++
 connectors/common/build.gradle                  |  7 ++
 connectors/file/build.gradle                    |  7 ++
 connectors/http/build.gradle                    |  9 ++
 connectors/iot/build.gradle                     |  7 ++
 connectors/iotf/build.gradle                    |  9 ++
 connectors/javax.websocket-client/build.gradle  |  7 ++
 connectors/javax.websocket-server/build.gradle  |  7 ++
 connectors/jdbc/build.gradle                    |  7 ++
 connectors/kafka/build.gradle                   |  9 ++
 connectors/mqtt/build.gradle                    | 10 ++
 connectors/pubsub/build.gradle                  |  7 ++
 connectors/quarks.javax.websocket/build.gradle  |  6 ++
 connectors/serial/build.gradle                  |  7 ++
 .../wsclient-javax.websocket/build.gradle       | 12 +++
 connectors/wsclient/build.gradle                |  7 ++
 console/server/build.gradle                     | 11 +++
 console/servlets/build.gradle                   | 23 +++++
 gradle.properties                               |  3 +
 providers/development/build.gradle              |  9 ++
 providers/direct/build.gradle                   | 11 +++
 providers/iot/build.gradle                      | 10 ++
 runtime/appservice/build.gradle                 |  5 +
 runtime/etiao/build.gradle                      |  8 ++
 runtime/jmxcontrol/build.gradle                 |  5 +
 runtime/jobregistry/build.gradle                |  5 +
 runtime/jsoncontrol/build.gradle                |  5 +
 samples/apps/build.gradle                       | 11 +++
 samples/connectors/build.gradle                 | 13 +++
 samples/console/build.gradle                    |  6 ++
 samples/scenarios/build.gradle                  |  9 ++
 samples/topology/build.gradle                   |  8 ++
 samples/utils/build.gradle                      |  8 ++
 settings.gradle                                 | 49 ++++++++++
 spi/graph/build.gradle                          |  5 +
 spi/topology/build.gradle                       |  4 +
 test/fvtiot/build.gradle                        |  8 ++
 test/svt/build.gradle                           |  6 ++
 utils/metrics/build.gradle                      |  6 ++
 utils/streamscope/build.gradle                  |  6 ++
 50 files changed, 506 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/analytics/math3/build.gradle
----------------------------------------------------------------------
diff --git a/analytics/math3/build.gradle b/analytics/math3/build.gradle
new file mode 100644
index 0000000..d019c42
--- /dev/null
+++ b/analytics/math3/build.gradle
@@ -0,0 +1,8 @@
+dependencies {
+  compile project(':api:topology')
+  compile 'org.apache.commons:commons-math3:3.4.1'
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/analytics/sensors/build.gradle
----------------------------------------------------------------------
diff --git a/analytics/sensors/build.gradle b/analytics/sensors/build.gradle
new file mode 100644
index 0000000..6a60a80
--- /dev/null
+++ b/analytics/sensors/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/api/execution/build.gradle
----------------------------------------------------------------------
diff --git a/api/execution/build.gradle b/api/execution/build.gradle
new file mode 100644
index 0000000..b14d31c
--- /dev/null
+++ b/api/execution/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+  compile project(':api:function')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/api/function/build.gradle
----------------------------------------------------------------------
diff --git a/api/function/build.gradle b/api/function/build.gradle
new file mode 100644
index 0000000..e9df3d1
--- /dev/null
+++ b/api/function/build.gradle
@@ -0,0 +1,3 @@
+dependencies {
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/api/graph/build.gradle
----------------------------------------------------------------------
diff --git a/api/graph/build.gradle b/api/graph/build.gradle
new file mode 100644
index 0000000..4e5e2a0
--- /dev/null
+++ b/api/graph/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+  compile project(':api:oplet')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/api/oplet/build.gradle
----------------------------------------------------------------------
diff --git a/api/oplet/build.gradle b/api/oplet/build.gradle
new file mode 100644
index 0000000..82c58c8
--- /dev/null
+++ b/api/oplet/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':api:function')
+  compile project(':api:execution')
+  compile project(':api:window')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/api/topology/build.gradle
----------------------------------------------------------------------
diff --git a/api/topology/build.gradle b/api/topology/build.gradle
new file mode 100644
index 0000000..3f75d4e
--- /dev/null
+++ b/api/topology/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:graph')
+  compile project(':api:oplet')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/api/window/build.gradle
----------------------------------------------------------------------
diff --git a/api/window/build.gradle b/api/window/build.gradle
new file mode 100644
index 0000000..b14d31c
--- /dev/null
+++ b/api/window/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+  compile project(':api:function')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/apps/iot/build.gradle
----------------------------------------------------------------------
diff --git a/apps/iot/build.gradle b/apps/iot/build.gradle
new file mode 100644
index 0000000..356f22b
--- /dev/null
+++ b/apps/iot/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':api:topology')
+  compile project(':connectors:pubsub')
+  compile project(':connectors:iot')
+  testCompile project(':providers:direct')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/apps/runtime/build.gradle
----------------------------------------------------------------------
diff --git a/apps/runtime/build.gradle b/apps/runtime/build.gradle
new file mode 100644
index 0000000..131ae23
--- /dev/null
+++ b/apps/runtime/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile project(':runtime:jobregistry')
+  compile project(':runtime:appservice')
+  testCompile project(':providers:direct')
+  testCompile project(':runtime:jmxcontrol')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..7620aeb
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,99 @@
+/* Configure root project */
+ext.commithash = {
+  try {
+    return "git rev-parse --short HEAD".execute().text.trim()
+  } catch (Exception e) {
+    return ''
+  }
+}()
+def now = new Date()
+ext.DSTAMP = String.format('%tY%<tm%<td', now)
+ext.TSTAMP = String.format('%tH%<tM', now)
+ext.ext_classpath = ['com.google.code.gson:gson:2.2.4', 
+  'org.slf4j:slf4j-api:1.7.12', 
+  'io.dropwizard.metrics:metrics-core:3.1.2']
+
+/* Configure subprojects */
+subprojects {
+  if (!buildFile.exists()) {
+    configurations.create('default')
+    return
+  }
+  repositories {
+    mavenCentral()
+    maven {
+      url 'https://repo.eclipse.org/content/repositories/paho-snapshots/'
+    }
+  }
+
+  plugins.apply 'java'
+  plugins.apply 'jacoco'
+
+  archivesBaseName = "${rootProject.name}${project.path.replace(':','.')}"
+  version = build_version
+
+  jacoco {
+    toolVersion = '0.7.5.201505241946'
+  }
+
+  dependencies {
+    testCompile 'junit:junit:4.10'
+    testRuntime 'org.slf4j:slf4j-jdk14:1.7.12'
+  }
+
+  ext.addCompileTestDependencies = { String... deps ->
+    deps.each { dep ->
+      dependencies {
+        testCompile project(dep).sourceSets.test.output
+      }
+      compileTestJava {
+        dependsOn "${dep}:testClasses"
+      }
+    }
+  }
+
+  sourceCompatibility = '1.8'
+  targetCompatibility = '1.8'
+  def compileOptions = {
+    options.debugOptions.debugLevel = 'source,lines,vars'
+    options.verbose = logger.isDebugEnabled()
+    options.listFiles = logger.isInfoEnabled()
+    options.deprecation = true
+    options.encoding = 'UTF-8'
+  }
+  compileJava {
+    configure compileOptions
+  }
+  compileTestJava {
+    configure compileOptions
+  }
+
+  test {
+    include '**/*Test.class'
+    testLogging {
+      exceptionFormat 'full'
+    }
+  }
+
+  ext.jarOptions = {
+    manifest {
+      attributes(
+        'Implementation-Title': "${-> baseName}",
+        'Implementation-Vendor': build_vendor,
+        'Implementation-Version': "${commithash}-${DSTAMP}-${TSTAMP}",
+        // TODO Class-Path attribute
+      )
+    }
+    metaInf {
+      from rootProject.file('LICENSE')
+      from rootProject.file('NOTICE')
+    } 
+  }
+  jar {
+    configure jarOptions
+  }
+}
+
+task wrapper(type: Wrapper) {
+  jarFile = rootProject.file('.gradle-wrapper/gradle-wrapper.jar')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/common/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/common/build.gradle b/connectors/common/build.gradle
new file mode 100644
index 0000000..6a60a80
--- /dev/null
+++ b/connectors/common/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/file/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/file/build.gradle b/connectors/file/build.gradle
new file mode 100644
index 0000000..a97903e
--- /dev/null
+++ b/connectors/file/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct', ':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/http/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/http/build.gradle b/connectors/http/build.gradle
new file mode 100644
index 0000000..0c4fdc7
--- /dev/null
+++ b/connectors/http/build.gradle
@@ -0,0 +1,9 @@
+dependencies {
+  compile project(':api:topology')
+  compile 'org.apache.httpcomponents:httpclient:4.5.1'
+  compile 'org.apache.httpcomponents:httpcore:4.4.4'
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/iot/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iot/build.gradle b/connectors/iot/build.gradle
new file mode 100644
index 0000000..6a60a80
--- /dev/null
+++ b/connectors/iot/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/iotf/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iotf/build.gradle b/connectors/iotf/build.gradle
new file mode 100644
index 0000000..2a90336
--- /dev/null
+++ b/connectors/iotf/build.gradle
@@ -0,0 +1,9 @@
+dependencies {
+  compile project(':api:topology')
+  compile project(':connectors:iot')
+  compile 'com.ibm.messaging:watson-iot:0.1.1'
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/javax.websocket-client/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/javax.websocket-client/build.gradle b/connectors/javax.websocket-client/build.gradle
new file mode 100644
index 0000000..6e9a883
--- /dev/null
+++ b/connectors/javax.websocket-client/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = project.name
+
+dependencies {
+  compile project(':connectors:quarks.javax.websocket')
+  compile 'org.eclipse.jetty.websocket:javax-websocket-client-impl:9.3.6.v20151106'
+  testRuntime ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/javax.websocket-server/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/javax.websocket-server/build.gradle b/connectors/javax.websocket-server/build.gradle
new file mode 100644
index 0000000..4be8978
--- /dev/null
+++ b/connectors/javax.websocket-server/build.gradle
@@ -0,0 +1,7 @@
+archivesBaseName = project.name
+
+dependencies {
+  compile project(':connectors:javax.websocket-client')
+  compile 'org.eclipse.jetty.websocket:javax-websocket-server-impl:9.3.6.v20151106'
+  testRuntime ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/jdbc/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/jdbc/build.gradle b/connectors/jdbc/build.gradle
new file mode 100644
index 0000000..a97903e
--- /dev/null
+++ b/connectors/jdbc/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct', ':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/kafka/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/kafka/build.gradle b/connectors/kafka/build.gradle
new file mode 100644
index 0000000..ff2ae99
--- /dev/null
+++ b/connectors/kafka/build.gradle
@@ -0,0 +1,9 @@
+dependencies {
+  compile project(':api:topology')
+  compile 'org.apache.kafka:kafka_2.10:0.8.2.2'
+  compile 'org.apache.kafka:kafka-clients:0.8.2.2'
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct', ':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/mqtt/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/mqtt/build.gradle b/connectors/mqtt/build.gradle
new file mode 100644
index 0000000..02a141d
--- /dev/null
+++ b/connectors/mqtt/build.gradle
@@ -0,0 +1,10 @@
+dependencies {
+  compile project(':api:topology')
+  compile project(':connectors:iot')
+  compile project(':connectors:common')
+  compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
+  testCompile project(':providers:direct')
+  testRuntime ext_classpath
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct', ':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/pubsub/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/pubsub/build.gradle b/connectors/pubsub/build.gradle
new file mode 100644
index 0000000..6a60a80
--- /dev/null
+++ b/connectors/pubsub/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/quarks.javax.websocket/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/quarks.javax.websocket/build.gradle b/connectors/quarks.javax.websocket/build.gradle
new file mode 100644
index 0000000..b666906
--- /dev/null
+++ b/connectors/quarks.javax.websocket/build.gradle
@@ -0,0 +1,6 @@
+archivesBaseName = project.name
+
+dependencies {
+  compile 'javax.websocket:javax.websocket-api:1.0'
+  testRuntime ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/serial/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/serial/build.gradle b/connectors/serial/build.gradle
new file mode 100644
index 0000000..6a60a80
--- /dev/null
+++ b/connectors/serial/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/wsclient-javax.websocket/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/wsclient-javax.websocket/build.gradle b/connectors/wsclient-javax.websocket/build.gradle
new file mode 100644
index 0000000..6b312e6
--- /dev/null
+++ b/connectors/wsclient-javax.websocket/build.gradle
@@ -0,0 +1,12 @@
+dependencies {
+  compile project(':api:topology')
+  compile project(':connectors:common')
+  compile project(':connectors:wsclient')
+  compile project(':connectors:quarks.javax.websocket')
+  testCompile project(':providers:direct')
+  testCompile project(':connectors:javax.websocket-client')
+  testCompile project(':connectors:javax.websocket-server')
+  testRuntime ext_classpath
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct', ':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/connectors/wsclient/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/wsclient/build.gradle b/connectors/wsclient/build.gradle
new file mode 100644
index 0000000..6a60a80
--- /dev/null
+++ b/connectors/wsclient/build.gradle
@@ -0,0 +1,7 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+  testCompile project(':providers:direct')
+}
+
+addCompileTestDependencies ':api:topology', ':providers:direct'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/console/server/build.gradle
----------------------------------------------------------------------
diff --git a/console/server/build.gradle b/console/server/build.gradle
new file mode 100644
index 0000000..892520f
--- /dev/null
+++ b/console/server/build.gradle
@@ -0,0 +1,11 @@
+dependencies {
+  compile 'org.eclipse.jetty:jetty-http:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-io:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-security:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-server:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-servlet:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-util:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-webapp:9.3.6.v20151106'
+  compile 'org.eclipse.jetty:jetty-xml:9.3.6.v20151106'
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/console/servlets/build.gradle
----------------------------------------------------------------------
diff --git a/console/servlets/build.gradle b/console/servlets/build.gradle
new file mode 100644
index 0000000..3745df4
--- /dev/null
+++ b/console/servlets/build.gradle
@@ -0,0 +1,23 @@
+distsDirName = 'webapps'
+
+plugins.apply 'war'
+
+dependencies {
+  providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
+  providedCompile project(':utils:streamscope')
+  providedCompile ext_classpath
+}
+
+war {
+  configure jarOptions
+  destinationDir = project.distsDir
+  archiveName 'console.war'
+  from file('webapp_content/html')
+  into('resources') {
+    from file('webapp_content/resources')
+  }
+  into('js') {
+    from file('webapp_content/js')
+  }
+  webXml = file('webapp_content/WEB-INF/console.xml')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/gradle.properties
----------------------------------------------------------------------
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..2ad8b03
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,3 @@
+build_name: quarks
+build_version: 0.4.0
+build_vendor: Apache Software Foundation

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/providers/development/build.gradle
----------------------------------------------------------------------
diff --git a/providers/development/build.gradle b/providers/development/build.gradle
new file mode 100644
index 0000000..004f36a
--- /dev/null
+++ b/providers/development/build.gradle
@@ -0,0 +1,9 @@
+dependencies {
+  compile project(':providers:direct')
+  compile project(':console:server')
+  compile project(':utils:metrics')
+  compile project(':utils:streamscope')
+  compile project(':runtime:jmxcontrol')
+}
+
+addCompileTestDependencies ':api:topology', ':utils:streamscope'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/providers/direct/build.gradle
----------------------------------------------------------------------
diff --git a/providers/direct/build.gradle b/providers/direct/build.gradle
new file mode 100644
index 0000000..1a8ad6f
--- /dev/null
+++ b/providers/direct/build.gradle
@@ -0,0 +1,11 @@
+dependencies {
+  compile project(':api:topology')
+  compile project(':spi:topology')
+  compile project(':spi:graph')
+  compile project(':runtime:etiao')
+  compile project(':runtime:jsoncontrol')
+  compile ext_classpath
+  testCompile project(':utils:metrics')
+}
+
+addCompileTestDependencies ':api:topology', ':utils:metrics'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/providers/iot/build.gradle
----------------------------------------------------------------------
diff --git a/providers/iot/build.gradle b/providers/iot/build.gradle
new file mode 100644
index 0000000..1bddf6f
--- /dev/null
+++ b/providers/iot/build.gradle
@@ -0,0 +1,10 @@
+dependencies {
+  compile project(':providers:direct')
+  compile project(':runtime:jsoncontrol')
+  compile project(':runtime:appservice')
+  compile project(':connectors:iot')
+  compile project(':connectors:pubsub')
+  compile project(':apps:iot')
+}
+
+addCompileTestDependencies ':api:topology'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/runtime/appservice/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/appservice/build.gradle b/runtime/appservice/build.gradle
new file mode 100644
index 0000000..8472371
--- /dev/null
+++ b/runtime/appservice/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:topology')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/runtime/etiao/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/etiao/build.gradle b/runtime/etiao/build.gradle
new file mode 100644
index 0000000..7413cb6
--- /dev/null
+++ b/runtime/etiao/build.gradle
@@ -0,0 +1,8 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:graph')
+  compile project(':spi:graph')
+  compile ext_classpath
+}
+
+addCompileTestDependencies ':api:graph'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/runtime/jmxcontrol/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jmxcontrol/build.gradle b/runtime/jmxcontrol/build.gradle
new file mode 100644
index 0000000..1c89219
--- /dev/null
+++ b/runtime/jmxcontrol/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:function')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/runtime/jobregistry/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jobregistry/build.gradle b/runtime/jobregistry/build.gradle
new file mode 100644
index 0000000..8472371
--- /dev/null
+++ b/runtime/jobregistry/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:topology')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/runtime/jsoncontrol/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jsoncontrol/build.gradle b/runtime/jsoncontrol/build.gradle
new file mode 100644
index 0000000..1c89219
--- /dev/null
+++ b/runtime/jsoncontrol/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:function')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/samples/apps/build.gradle
----------------------------------------------------------------------
diff --git a/samples/apps/build.gradle b/samples/apps/build.gradle
new file mode 100644
index 0000000..344fd1e
--- /dev/null
+++ b/samples/apps/build.gradle
@@ -0,0 +1,11 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':providers:direct')
+  compile project(':connectors:mqtt')
+  compile project(':connectors:file')
+  compile project(':connectors:serial')
+  compile project(':analytics:math3')
+  compile project(':analytics:sensors')
+  compile project(':samples:utils')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/samples/connectors/build.gradle
----------------------------------------------------------------------
diff --git a/samples/connectors/build.gradle b/samples/connectors/build.gradle
new file mode 100644
index 0000000..f2ff28b
--- /dev/null
+++ b/samples/connectors/build.gradle
@@ -0,0 +1,13 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':providers:direct')
+  compile project(':connectors:mqtt')
+  compile project(':connectors:kafka')
+  compile project(':connectors:file')
+  compile project(':connectors:iotf')
+  compile project(':connectors:jdbc')
+  compile project(':connectors:serial')
+  compile project(':samples:topology')
+  compile project(':samples:utils')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/samples/console/build.gradle
----------------------------------------------------------------------
diff --git a/samples/console/build.gradle b/samples/console/build.gradle
new file mode 100644
index 0000000..c6dadb6
--- /dev/null
+++ b/samples/console/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':providers:direct')
+  compile project(':console:server')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/samples/scenarios/build.gradle
----------------------------------------------------------------------
diff --git a/samples/scenarios/build.gradle b/samples/scenarios/build.gradle
new file mode 100644
index 0000000..21e35c3
--- /dev/null
+++ b/samples/scenarios/build.gradle
@@ -0,0 +1,9 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':providers:direct')
+  compile project(':samples:connectors')
+  compile project(':providers:iot')
+  compile project(':connectors:iotf')
+  compile 'com.pi4j:pi4j-core:1.0'
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/samples/topology/build.gradle
----------------------------------------------------------------------
diff --git a/samples/topology/build.gradle b/samples/topology/build.gradle
new file mode 100644
index 0000000..9945c34
--- /dev/null
+++ b/samples/topology/build.gradle
@@ -0,0 +1,8 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':providers:direct')
+  compile project(':analytics:math3')
+  compile project(':runtime:jobregistry')
+  compile project(':samples:utils')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/samples/utils/build.gradle
----------------------------------------------------------------------
diff --git a/samples/utils/build.gradle b/samples/utils/build.gradle
new file mode 100644
index 0000000..5ef2c95
--- /dev/null
+++ b/samples/utils/build.gradle
@@ -0,0 +1,8 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':providers:direct')
+  compile project(':utils:metrics')
+  compile project(':analytics:math3')
+  compile project(':analytics:sensors')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/settings.gradle
----------------------------------------------------------------------
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..3dc0872
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,49 @@
+include 'api:function'
+include 'api:execution'
+include 'api:window'
+include 'api:oplet'
+include 'api:graph'
+include 'api:topology'
+include 'spi:graph'
+include 'spi:topology'
+include 'runtime:appservice'
+include 'runtime:etiao'
+include 'runtime:jmxcontrol'
+include 'runtime:jsoncontrol'
+include 'runtime:jobregistry'
+include 'utils:metrics'
+include 'utils:streamscope'
+include 'providers:direct'
+include 'connectors:common'
+include 'connectors:iot'
+include 'connectors:serial'
+include 'connectors:file'
+include 'connectors:http'
+include 'connectors:iotf'
+include 'connectors:jdbc'
+include 'connectors:kafka'
+include 'connectors:mqtt'
+include 'connectors:pubsub'
+include 'connectors:quarks.javax.websocket'
+include 'connectors:javax.websocket-client'
+include 'connectors:javax.websocket-server'
+include 'connectors:wsclient'
+include 'connectors:wsclient-javax.websocket'
+include 'console:server'
+include 'console:servlets'
+include 'apps:iot'
+include 'apps:runtime'
+include 'providers:development'
+include 'providers:iot'
+include 'analytics:math3'
+include 'analytics:sensors'
+include 'samples:utils'
+include 'samples:apps'
+include 'samples:topology'
+include 'samples:connectors'
+include 'samples:console'
+include 'samples:scenarios'
+include 'test:fvtiot'
+include 'test:svt'
+
+rootProject.name = build_name

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/spi/graph/build.gradle
----------------------------------------------------------------------
diff --git a/spi/graph/build.gradle b/spi/graph/build.gradle
new file mode 100644
index 0000000..dc53622
--- /dev/null
+++ b/spi/graph/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+  compile project(':api:execution')
+  compile project(':api:graph')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/spi/topology/build.gradle
----------------------------------------------------------------------
diff --git a/spi/topology/build.gradle b/spi/topology/build.gradle
new file mode 100644
index 0000000..aaab9e6
--- /dev/null
+++ b/spi/topology/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/test/fvtiot/build.gradle
----------------------------------------------------------------------
diff --git a/test/fvtiot/build.gradle b/test/fvtiot/build.gradle
new file mode 100644
index 0000000..fadbe29
--- /dev/null
+++ b/test/fvtiot/build.gradle
@@ -0,0 +1,8 @@
+dependencies {
+  compile project(':providers:iot')
+  compile project(':runtime:appservice')
+  compile project(':runtime:jsoncontrol')
+  compile ext_classpath
+}
+
+addCompileTestDependencies ':apps:iot'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/test/svt/build.gradle
----------------------------------------------------------------------
diff --git a/test/svt/build.gradle b/test/svt/build.gradle
new file mode 100644
index 0000000..f527420
--- /dev/null
+++ b/test/svt/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':providers:development')
+  compile project(':samples:apps')
+  compile project(':connectors:iotf')
+  compile ext_classpath
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/utils/metrics/build.gradle
----------------------------------------------------------------------
diff --git a/utils/metrics/build.gradle b/utils/metrics/build.gradle
new file mode 100644
index 0000000..20fe4cc
--- /dev/null
+++ b/utils/metrics/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+}
+
+addCompileTestDependencies ':api:topology'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/ded57f9b/utils/streamscope/build.gradle
----------------------------------------------------------------------
diff --git a/utils/streamscope/build.gradle b/utils/streamscope/build.gradle
new file mode 100644
index 0000000..20fe4cc
--- /dev/null
+++ b/utils/streamscope/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+  compile project(':api:topology')
+  compile ext_classpath
+}
+
+addCompileTestDependencies ':api:topology'