You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by ca...@apache.org on 2016/05/19 08:37:47 UTC

[06/15] incubator-quarks git commit: Initial commit of conversion of the quarks build to maven.

Initial commit of conversion of the quarks build to maven.


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

Branch: refs/heads/gradle
Commit: 885538df385e93f136d2065042bf29528531c756
Parents: 10075c6
Author: Lance Feagan <lf...@hotmail.com>
Authored: Thu Mar 17 17:56:57 2016 -0500
Committer: cazen <ca...@apache.org>
Committed: Thu May 19 07:34:11 2016 +0000

----------------------------------------------------------------------
 .gitignore                                      |  6 ++
 analytics/math3/build.gradle                    | 10 +++
 analytics/sensors/build.gradle                  |  9 ++
 api/execution/build.gradle                      |  6 ++
 api/function/build.gradle                       |  2 +
 api/graph/build.gradle                          |  6 ++
 api/oplet/build.gradle                          |  8 ++
 api/topology/build.gradle                       |  7 ++
 api/window/build.gradle                         |  6 ++
 apps/iot/build.gradle                           | 10 +++
 build.gradle                                    | 89 ++++++++++++++++++++
 connectors/common/build.gradle                  | 10 +++
 connectors/file/build.gradle                    | 11 +++
 connectors/http/build.gradle                    | 11 +++
 connectors/iot/build.gradle                     |  6 ++
 connectors/iotf/build.gradle                    | 12 +++
 connectors/javax.websocket-client/build.gradle  | 14 +++
 connectors/javax.websocket-server/build.gradle  |  6 ++
 connectors/jdbc/build.gradle                    | 11 +++
 connectors/kafka/build.gradle                   | 18 ++++
 connectors/mqtt/build.gradle                    | 14 +++
 connectors/pubsub/build.gradle                  | 10 +++
 connectors/quarks.javax.websocket/build.gradle  |  7 ++
 connectors/serial/build.gradle                  |  6 ++
 .../wsclient-javax.websocket/build.gradle       | 32 +++++++
 connectors/wsclient/build.gradle                |  6 ++
 console/server/build.gradle                     | 14 +++
 console/servlets/build.gradle                   | 38 +++++++++
 providers/development/build.gradle              | 11 +++
 providers/direct/build.gradle                   | 13 +++
 runtime/appservice/build.gradle                 |  7 ++
 runtime/etiao/build.gradle                      |  8 ++
 runtime/jmxcontrol/build.gradle                 |  7 ++
 runtime/jsoncontrol/build.gradle                |  7 ++
 samples/apps/build.gradle                       | 11 +++
 samples/connectors/build.gradle                 | 12 +++
 samples/console/build.gradle                    |  8 ++
 samples/topology/build.gradle                   |  7 ++
 samples/utils/build.gradle                      | 10 +++
 settings.gradle                                 | 22 +++++
 spi/graph/build.gradle                          |  7 ++
 spi/topology/build.gradle                       |  6 ++
 test/fvtiot/build.gradle                        |  8 ++
 test/svt/build.gradle                           |  6 ++
 utils/metrics/build.gradle                      | 10 +++
 45 files changed, 545 insertions(+)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/analytics/math3/build.gradle
----------------------------------------------------------------------
diff --git a/analytics/math3/build.gradle b/analytics/math3/build.gradle
new file mode 100644
index 0000000..de9ab1f
--- /dev/null
+++ b/analytics/math3/build.gradle
@@ -0,0 +1,10 @@
+ext.artifact = 'analytics.math3' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Analytics math functions'
+
+dependencies {
+	compile project(':api/topology')
+	compile files('./ext/commons-math3-3.4.1/commons-math3-3.4.1.jar')
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/analytics/sensors/build.gradle
----------------------------------------------------------------------
diff --git a/analytics/sensors/build.gradle b/analytics/sensors/build.gradle
new file mode 100644
index 0000000..82e5b32
--- /dev/null
+++ b/analytics/sensors/build.gradle
@@ -0,0 +1,9 @@
+ext.artifact = 'analytics.sensors' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Analytics aimed at sensor readings'
+
+dependencies {
+	compile project(':api/topology')
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/api/execution/build.gradle
----------------------------------------------------------------------
diff --git a/api/execution/build.gradle b/api/execution/build.gradle
new file mode 100644
index 0000000..94c97ec
--- /dev/null
+++ b/api/execution/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'api.execution' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The API for executing flows'
+
+dependencies {
+	compile project(':api/function')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/api/function/build.gradle
----------------------------------------------------------------------
diff --git a/api/function/build.gradle b/api/function/build.gradle
new file mode 100644
index 0000000..ec51961
--- /dev/null
+++ b/api/function/build.gradle
@@ -0,0 +1,2 @@
+ext.artifact = 'api.function' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The API for buidling functions'

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/api/graph/build.gradle
----------------------------------------------------------------------
diff --git a/api/graph/build.gradle b/api/graph/build.gradle
new file mode 100644
index 0000000..0fb30af
--- /dev/null
+++ b/api/graph/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'api.graph' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The graph API'
+
+dependencies {
+	compile project(':api/oplet')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/api/oplet/build.gradle
----------------------------------------------------------------------
diff --git a/api/oplet/build.gradle b/api/oplet/build.gradle
new file mode 100644
index 0000000..19da7fa
--- /dev/null
+++ b/api/oplet/build.gradle
@@ -0,0 +1,8 @@
+ext.artifact = 'api.oplet' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The oplet API'
+
+dependencies {
+	compile project(':api/execution')
+	compile project(':api/function')
+	compile project(':api/window')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/api/topology/build.gradle
----------------------------------------------------------------------
diff --git a/api/topology/build.gradle b/api/topology/build.gradle
new file mode 100644
index 0000000..e9b3e53
--- /dev/null
+++ b/api/topology/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'api.topology' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The topology API'
+
+dependencies {
+	compile project(':api/execution')
+	compile project(':api/graph')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/api/window/build.gradle
----------------------------------------------------------------------
diff --git a/api/window/build.gradle b/api/window/build.gradle
new file mode 100644
index 0000000..91d6b77
--- /dev/null
+++ b/api/window/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'api.window' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The window API'
+
+dependencies {
+	compile project(':api/function')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/apps/iot/build.gradle
----------------------------------------------------------------------
diff --git a/apps/iot/build.gradle b/apps/iot/build.gradle
new file mode 100644
index 0000000..5c62bd4
--- /dev/null
+++ b/apps/iot/build.gradle
@@ -0,0 +1,10 @@
+ext.artifact = 'apps.iot' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Applications utilizing IotDevice'
+
+dependencies {
+	compile project(':api/topology')
+	compile project(':connectors/iot')
+	compile project(':connectors/pubsub')
+
+	testCompile project(':providers/direct')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..58ce947
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,89 @@
+// STANDARD-HEADER-START - do not modify
+//buildscript {
+//	ext {
+//		centralRepositoryUrl = "${repositoryBaseUrl}/${centralRepo}"
+//		creds = { username "${mvn_username}"; password "$mvn_password"} ;
+//	}
+//
+//	repositories {
+//			//mavenLocal()
+//			maven { url centralRepositoryUrl; credentials creds }	// group of all needs repos
+//	}
+//	dependencies { 	classpath 'com.ibm.informix.gradle:plugins:1.+'}
+//}
+//
+//apply plugin: 'com.ibm.informix.gradle.ci-setup'
+// STANDARD-HEADER-START - do not modify
+
+repositories {
+	mavenLocal()
+}
+
+// SET PROJECT INFO for all artifacts
+assert hasProperty('version')	// See version in gradle.properties.
+System.out.println("version=${version}")
+group = 'org.apache.quarks'
+//ext.artifact = 'core' // However ArtifactId can be set per artifact in publishing.publications
+//description = 'IBM UTM Core'
+
+def getDate() {
+	if (!hasProperty('buildDate') || buildDate == null) {
+		ext.buildDate = new java.util.Date().format('yyyyMMddHHmm');
+	}
+	return ext.buildDate;
+}
+
+getDate();
+
+subprojects {
+	apply plugin: 'java'
+	apply plugin: 'maven-publish'
+	
+	group = 'org.apache.quarks'
+
+	repositories {
+	   mavenCentral()
+	}
+
+	dependencies {
+		compile group: 'com.google.code.gson' , name: 'gson' , version: '2.2.4'
+		compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.12'
+		compile group: 'io.dropwizard.metrics', name: 'metrics-core', version: '3.1.2'
+		testCompile 'junit:junit:4.8.2'
+	}
+
+	version = '1.0.0'
+
+	jar {
+		manifest.attributes provider: 'IBM'
+	}
+	
+	task sourceJar(type: Jar) {
+		// baseName-appendix-version-classifier.extension
+		from sourceSets.main.allJava
+		classifier = 'sources'
+	}
+	
+	task javadocJar(type: Jar, dependsOn: 'javadoc') {
+		from javadoc.destinationDir
+		classifier = 'javadoc'
+	}
+
+	publishing {
+		publications {
+			mavenJava(MavenPublication) {
+				from components.java
+				artifactId = artifact
+				//artifact sourceJar
+				//artifact javadocJar
+				//artifact testJar
+				pom.withXml {
+					// Example of appending more information to pom.
+					//asNode().appendNode('description', 'A demonstration of Maven POM customization')
+				}
+			}
+		}
+	}
+
+	task listAllDependencies(type: DependencyReportTask) {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/common/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/common/build.gradle b/connectors/common/build.gradle
new file mode 100644
index 0000000..96ad5bf
--- /dev/null
+++ b/connectors/common/build.gradle
@@ -0,0 +1,10 @@
+ext.artifact = 'connectors.common' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Common Connector Code'
+
+dependencies {
+	compile project(':api/topology')
+	
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/file/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/file/build.gradle b/connectors/file/build.gradle
new file mode 100644
index 0000000..751b8ce
--- /dev/null
+++ b/connectors/file/build.gradle
@@ -0,0 +1,11 @@
+ext.artifact = 'connectors.file' // However ArtifactId can be set per artifact in publishing.publications
+description = 'File Connectors'
+
+dependencies {
+	compile project(':api/topology')
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':connectors/common').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/http/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/http/build.gradle b/connectors/http/build.gradle
new file mode 100644
index 0000000..0820037
--- /dev/null
+++ b/connectors/http/build.gradle
@@ -0,0 +1,11 @@
+ext.artifact = 'connectors.http' // However ArtifactId can be set per artifact in publishing.publications
+description = 'HTTP Connectors'
+
+dependencies {
+	compile project(':api/topology')
+	compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.2'
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/iot/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iot/build.gradle b/connectors/iot/build.gradle
new file mode 100644
index 0000000..752ed24
--- /dev/null
+++ b/connectors/iot/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'connectors.iot' // However ArtifactId can be set per artifact in publishing.publications
+description = 'IoT Device API'
+
+dependencies {
+	compile project(':api/topology')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/iotf/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iotf/build.gradle b/connectors/iotf/build.gradle
new file mode 100644
index 0000000..70a33e2
--- /dev/null
+++ b/connectors/iotf/build.gradle
@@ -0,0 +1,12 @@
+ext.artifact = 'connectors.iotf' // However ArtifactId can be set per artifact in publishing.publications
+description = 'IOTF Connectors'
+
+dependencies {
+	compile project(':api/topology')
+	compile project(':connectors/iot')
+	// compile group: 'joda-time', name: 'joda-time', version: '2.6'
+	// compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
+	compile files('./ext/com.ibm.iotf.client-0.0.9.jar')
+	compile files('./ext/lib/joda-time-2.6.jar')
+	compile files('./ext/lib/org.eclipse.paho.client.mqttv3-1.0.3-20150818.040635-202.jar')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/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..d28427f
--- /dev/null
+++ b/connectors/javax.websocket-client/build.gradle
@@ -0,0 +1,14 @@
+ext.artifact = 'connectors.javax.websocket-client' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Jetty supplied jsr356 WebSocket Client Implementation package'
+
+dependencies {
+	compile project(':connectors/quarks.javax.websocket')
+
+	//compile 'org.eclipse.jetty.websocket:websocket-api:9.3.6.v20151106'
+	compile files('./ext/javax-websocket-client-impl-9.3.6.v20151106.jar')
+	compile files('./ext/javax.websocket-api-1.0.jar')
+	compile files('./ext/jetty-util-9.3.6.v20151106.jar')
+	compile files('./ext/websocket-api-9.3.6.v20151106.jar')
+	compile files('./ext/websocket-client-9.3.6.v20151106.jar')
+	compile files('./ext/websocket-common-9.3.6.v20151106.jar')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/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..d9e9d3a
--- /dev/null
+++ b/connectors/javax.websocket-server/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'connectors.javax.websocket-server' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Jetty supplied JSR 356 WebSocket Server Implementation package'
+
+dependencies {
+	compile project(':connectors/javax.websocket-client')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/jdbc/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/jdbc/build.gradle b/connectors/jdbc/build.gradle
new file mode 100644
index 0000000..aaf1d2c
--- /dev/null
+++ b/connectors/jdbc/build.gradle
@@ -0,0 +1,11 @@
+ext.artifact = 'connectors.jdbc' // However ArtifactId can be set per artifact in publishing.publications
+description = 'JDBC Connectors'
+
+dependencies {
+	compile project(':api/topology')
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':connectors/common').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/kafka/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/kafka/build.gradle b/connectors/kafka/build.gradle
new file mode 100644
index 0000000..38439e7
--- /dev/null
+++ b/connectors/kafka/build.gradle
@@ -0,0 +1,18 @@
+ext.artifact = 'connectors.kafka' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Kafka Connectors'
+
+dependencies {
+	compile project(':api/topology')
+	compile files('./ext/kafka-clients-0.8.2.2.jar')
+	compile files('./ext/kafka_2.10-0.8.2.2.jar')
+	compile files('./ext/log4j-1.2.16.jar')
+	compile files('./ext/metrics-core-2.2.0.jar')
+	compile files('./ext/scala-library-2.10.4.jar')
+	compile files('./ext/zkclient-0.3.jar')
+	compile files('./ext/zookeeper-3.4.6.jar')
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':connectors/common').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/mqtt/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/mqtt/build.gradle b/connectors/mqtt/build.gradle
new file mode 100644
index 0000000..6f91e25
--- /dev/null
+++ b/connectors/mqtt/build.gradle
@@ -0,0 +1,14 @@
+ext.artifact = 'connectors.mqtt' // However ArtifactId can be set per artifact in publishing.publications
+description = 'MQTT Connectors'
+
+dependencies {
+	compile project(':api/topology')
+	compile project(':connectors/common')
+	compile project(':connectors/iot')
+	compile files('./ext/org.eclipse.paho.client.mqttv3-1.0.2.jar')
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':connectors/common').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/pubsub/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/pubsub/build.gradle b/connectors/pubsub/build.gradle
new file mode 100644
index 0000000..637d3de
--- /dev/null
+++ b/connectors/pubsub/build.gradle
@@ -0,0 +1,10 @@
+ext.artifact = 'connectors.pubsub' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Publish Subscribe connector and service.'
+
+dependencies {
+	compile project(':api/topology')
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/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..c15836f
--- /dev/null
+++ b/connectors/quarks.javax.websocket/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'connectors.websocket' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Special Quarks javax.websocket bundle'
+
+dependencies {
+	//compile 'org.eclipse.jetty.websocket:websocket-api:9.3.6.v20151106'
+	compile files('./ext/javax.websocket-api-1.0.jar')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/serial/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/serial/build.gradle b/connectors/serial/build.gradle
new file mode 100644
index 0000000..b638e75
--- /dev/null
+++ b/connectors/serial/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'connectors.serial' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Serial Connector API'
+
+dependencies {
+	compile project(':api/topology')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/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..68273ca
--- /dev/null
+++ b/connectors/wsclient-javax.websocket/build.gradle
@@ -0,0 +1,32 @@
+ext.artifact = 'connectors.wsclient-javax.websocket' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Build JSR356 javax.websocket based WebSocket Client connector'
+
+dependencies {
+	compile project(':api/topology')
+	compile project(':connectors/common')
+	compile project(':connectors/wsclient')
+	compile project(':connectors/quarks.javax.websocket')
+	compile files('./ext/javax.websocket-api-1.0.jar')
+
+	testCompile project(':providers/direct')
+	testCompile project(':providers/direct').sourceSets.test.output
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':connectors/common').sourceSets.test.output
+	testCompile project(':connectors/javax.websocket-client')
+	testCompile project(':connectors/javax.websocket-server')
+
+	testCompile files('../javax.websocket-server/ext/javax-websocket-server-impl-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/jetty-http-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/jetty-io-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/jetty-security-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/jetty-server-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/jetty-servlet-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/servlet-api-3.1.jar')
+	testCompile files('../javax.websocket-server/ext/websocket-server-9.3.6.v20151106.jar')
+	testCompile files('../javax.websocket-server/ext/websocket-servlet-9.3.6.v20151106.jar')
+
+//	testCompile project(':connectors/javax.websocket-client').configurations.runtime
+//	testCompile project(':connectors/javax.websocket-server').configurations.compile
+//	testCompile files('../javax.websocket-server/ext/jetty-http-9.3.6.v20151106.jar')
+//	testCompile files('../javax.websocket-server/ext/jetty-server-9.3.6.v20151106.jar')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/connectors/wsclient/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/wsclient/build.gradle b/connectors/wsclient/build.gradle
new file mode 100644
index 0000000..771157c
--- /dev/null
+++ b/connectors/wsclient/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'connectors.wsclient' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Build WebSocket Client connector API.'
+
+dependencies {
+	compile project(':api/topology')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/console/server/build.gradle
----------------------------------------------------------------------
diff --git a/console/server/build.gradle b/console/server/build.gradle
new file mode 100644
index 0000000..010b277
--- /dev/null
+++ b/console/server/build.gradle
@@ -0,0 +1,14 @@
+ext.artifact = 'console.server' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Console Server'
+
+dependencies {
+	compile files('./ext/jetty-9.3.6/jetty-http-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-io-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-security-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-server-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-servlet-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-util-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-webapp-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/jetty-xml-9.3.6.v20151106.jar')
+	compile files('./ext/jetty-9.3.6/servlet-api-3.1.jar')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/console/servlets/build.gradle
----------------------------------------------------------------------
diff --git a/console/servlets/build.gradle b/console/servlets/build.gradle
new file mode 100644
index 0000000..74b3685
--- /dev/null
+++ b/console/servlets/build.gradle
@@ -0,0 +1,38 @@
+buildscript {
+	repositories {
+		jcenter()
+	}
+	dependencies {
+		classpath 'org.akhikhl.gretty:gretty:+'
+	}
+}
+
+apply plugin: 'war'
+apply plugin: 'org.akhikhl.gretty'
+//apply plugin: 'jetty'
+
+ext.artifact = 'console.servlets' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Web Console Servlets'
+
+dependencies {
+	compile files('../server/ext/jetty-9.3.6/servlet-api-3.1.jar')
+}
+
+war {
+	archiveName 'console.war'
+	from 'webapp_content/html' // adds a file-set to the root of the archive
+	into('resources') {
+		from 'webapp_content/resources'
+	}
+	into('js') {
+		from 'webapp_content/js'
+	}
+	webInf { from 'webapp_content/WEB-INF/' } // adds a file-set to the WEB-INF dir.
+	webXml = file('webapp_content/WEB-INF/console.xml') // copies a file to WEB-INF/web.xml
+}
+
+gretty {
+	port = 8080
+	contextPath = '/'
+	servletContainer = 'jetty9'
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/providers/development/build.gradle
----------------------------------------------------------------------
diff --git a/providers/development/build.gradle b/providers/development/build.gradle
new file mode 100644
index 0000000..1533ef7
--- /dev/null
+++ b/providers/development/build.gradle
@@ -0,0 +1,11 @@
+ext.artifact = 'providers.development' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The development topology provider'
+
+dependencies {
+	compile project(':providers/direct')
+	compile project(':console/server')
+	compile project(':utils/metrics')
+	compile project(':runtime/jmxcontrol')
+
+	testCompile project(':api/topology').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/providers/direct/build.gradle
----------------------------------------------------------------------
diff --git a/providers/direct/build.gradle b/providers/direct/build.gradle
new file mode 100644
index 0000000..9a9c279
--- /dev/null
+++ b/providers/direct/build.gradle
@@ -0,0 +1,13 @@
+ext.artifact = 'providers.direct' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The direct topology provider'
+
+dependencies {
+	compile project(':api/topology')
+	compile project(':spi/topology')
+	compile project(':spi/graph')
+	compile project(':runtime/etiao')
+
+	testCompile project(':api/topology').sourceSets.test.output
+	testCompile project(':utils/metrics')
+	testCompile project(':utils/metrics').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/runtime/appservice/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/appservice/build.gradle b/runtime/appservice/build.gradle
new file mode 100644
index 0000000..89c3049
--- /dev/null
+++ b/runtime/appservice/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'runtime.appservice' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The runtime application service library'
+
+dependencies {
+	compile project(':api/execution')
+	compile project(':api/topology')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/runtime/etiao/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/etiao/build.gradle b/runtime/etiao/build.gradle
new file mode 100644
index 0000000..c010902
--- /dev/null
+++ b/runtime/etiao/build.gradle
@@ -0,0 +1,8 @@
+ext.artifact = 'runtime.etiao' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The runtime Everything Is An Oplet (ETIAO) library'
+
+dependencies {
+	compile project(':api/graph')
+	compile project(':spi/graph')
+	testCompile project(':api/graph').sourceSets.test.output
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/runtime/jmxcontrol/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jmxcontrol/build.gradle b/runtime/jmxcontrol/build.gradle
new file mode 100644
index 0000000..ad687f3
--- /dev/null
+++ b/runtime/jmxcontrol/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'runtime.jmxcontrol' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The runtime JMX control library'
+
+dependencies {
+	compile project(':api/execution')
+	compile project(':api/function')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/runtime/jsoncontrol/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jsoncontrol/build.gradle b/runtime/jsoncontrol/build.gradle
new file mode 100644
index 0000000..e4f61c9
--- /dev/null
+++ b/runtime/jsoncontrol/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'runtime.jsoncontrol' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The runtime JSON control library'
+
+dependencies {
+	compile project(':api/execution')
+	compile project(':api/function')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/samples/apps/build.gradle
----------------------------------------------------------------------
diff --git a/samples/apps/build.gradle b/samples/apps/build.gradle
new file mode 100644
index 0000000..2272250
--- /dev/null
+++ b/samples/apps/build.gradle
@@ -0,0 +1,11 @@
+ext.artifact = 'samples.apps' // However ArtifactId can be set per artifact in publishing.publications
+description = 'Sample applications'
+
+dependencies {
+	compile project(':connectors/mqtt')
+	compile project(':connectors/file')
+	compile project(':analytics/math3')
+	compile files('../../analytics/math3/ext/commons-math3-3.4.1/commons-math3-3.4.1.jar')
+	compile project(':samples/topology')
+	compile project(':samples/utils')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/samples/connectors/build.gradle
----------------------------------------------------------------------
diff --git a/samples/connectors/build.gradle b/samples/connectors/build.gradle
new file mode 100644
index 0000000..3a7580d
--- /dev/null
+++ b/samples/connectors/build.gradle
@@ -0,0 +1,12 @@
+ext.artifact = 'samples.connectors' // However ArtifactId can be set per artifact in publishing.publications
+description = 'samples demonstrating connector functionality'
+
+dependencies {
+	compile project(':connectors/file')
+	compile project(':connectors/iotf')
+	compile project(':connectors/jdbc')
+	compile project(':connectors/kafka')
+	compile project(':connectors/mqtt')
+	compile project(':samples/topology')
+	compile project(':samples/utils')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/samples/console/build.gradle
----------------------------------------------------------------------
diff --git a/samples/console/build.gradle b/samples/console/build.gradle
new file mode 100644
index 0000000..da6cfd4
--- /dev/null
+++ b/samples/console/build.gradle
@@ -0,0 +1,8 @@
+ext.artifact = 'samples.console' // However ArtifactId can be set per artifact in publishing.publications
+description = 'samples demonstrating console functionality'
+
+dependencies {
+	compile project(':console/server')
+	compile project(':providers/development')
+	compile project(':providers/direct')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/samples/topology/build.gradle
----------------------------------------------------------------------
diff --git a/samples/topology/build.gradle b/samples/topology/build.gradle
new file mode 100644
index 0000000..2b08fbc
--- /dev/null
+++ b/samples/topology/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'samples.topology' // However ArtifactId can be set per artifact in publishing.publications
+description = 'samples demonstrating add-on functionality'
+
+dependencies {
+	compile project(':analytics/math3')
+	compile project(':samples/utils')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/samples/utils/build.gradle
----------------------------------------------------------------------
diff --git a/samples/utils/build.gradle b/samples/utils/build.gradle
new file mode 100644
index 0000000..0ba6b86
--- /dev/null
+++ b/samples/utils/build.gradle
@@ -0,0 +1,10 @@
+ext.artifact = 'samples.utils' // However ArtifactId can be set per artifact in publishing.publications
+description = 'samples demonstrating add-on functionality'
+
+dependencies {
+	compile project(':console/server')
+	compile project(':providers/development')
+	compile project(':providers/direct')
+	compile project(':utils/metrics')
+	compile files('../../analytics/math3/ext/commons-math3-3.4.1/commons-math3-3.4.1.jar')
+}

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

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/spi/graph/build.gradle
----------------------------------------------------------------------
diff --git a/spi/graph/build.gradle b/spi/graph/build.gradle
new file mode 100644
index 0000000..70452df
--- /dev/null
+++ b/spi/graph/build.gradle
@@ -0,0 +1,7 @@
+ext.artifact = 'spi.graph' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The graph SPI'
+
+dependencies {
+	compile project(':api/graph')
+	compile project(':api/execution')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/spi/topology/build.gradle
----------------------------------------------------------------------
diff --git a/spi/topology/build.gradle b/spi/topology/build.gradle
new file mode 100644
index 0000000..46fdab0
--- /dev/null
+++ b/spi/topology/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'spi.topology' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The topology SPI'
+
+dependencies {
+	compile project(':api/topology')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/test/fvtiot/build.gradle
----------------------------------------------------------------------
diff --git a/test/fvtiot/build.gradle b/test/fvtiot/build.gradle
new file mode 100644
index 0000000..f689f44
--- /dev/null
+++ b/test/fvtiot/build.gradle
@@ -0,0 +1,8 @@
+ext.artifact = 'test.fvtiot' // However ArtifactId can be set per artifact in publishing.publications
+description = 'FVT for IoT scenario'
+
+dependencies {
+	compile project(':providers/direct')
+	compile project(':runtime/appservice')
+	compile project(':runtime/jsoncontrol')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/test/svt/build.gradle
----------------------------------------------------------------------
diff --git a/test/svt/build.gradle b/test/svt/build.gradle
new file mode 100644
index 0000000..6321ac8
--- /dev/null
+++ b/test/svt/build.gradle
@@ -0,0 +1,6 @@
+ext.artifact = 'test.svt' // However ArtifactId can be set per artifact in publishing.publications
+description = 'SVT'
+
+dependencies {
+	compile project(':providers/development')
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/885538df/utils/metrics/build.gradle
----------------------------------------------------------------------
diff --git a/utils/metrics/build.gradle b/utils/metrics/build.gradle
new file mode 100644
index 0000000..c24bc33
--- /dev/null
+++ b/utils/metrics/build.gradle
@@ -0,0 +1,10 @@
+ext.artifact = 'utils.metrics' // However ArtifactId can be set per artifact in publishing.publications
+description = 'The metrics add-on'
+
+dependencies {
+	compile project(':api/topology')
+
+	testCompile project(':api/topology').sourceSets.test.output
+//	testCompile project(':providers/direct')
+//	testCompile project(':providers/direct').sourceSets.test.output
+}