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/12/01 17:24:27 UTC

[1/3] incubator-edgent git commit: remove gradle wrapper jar from the source bundle per policy

Repository: incubator-edgent
Updated Branches:
  refs/heads/release1.0.0 94cb41693 -> c5111e5e3


remove gradle wrapper jar from the source bundle per policy

add a build bootstrap step for source bundles
retain the wrapper in the repo for travis-ci use

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

Branch: refs/heads/release1.0.0
Commit: e83df78e844e1c3638922dd520ba03fec7ac8956
Parents: 94cb416
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Wed Nov 30 17:21:25 2016 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Wed Nov 30 17:21:25 2016 -0500

----------------------------------------------------------------------
 DEVELOPMENT.md | 10 +++++++++-
 README         |  7 +++++++
 build.gradle   |  7 ++++++-
 wrapper.gradle | 38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 60 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/e83df78e/DEVELOPMENT.md
----------------------------------------------------------------------
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 61168ef..263a91e 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -35,12 +35,19 @@ Once you have forked the repository and created your local clone you need to dow
 these additional development software tools.
 
 * Java 8 - The development setup assumes Java 8 and Linux.
+* gradle - (https://gradle.org/) only if building from a source release bundle
 
 All Edgent runtime development is done using Java 8.  JARs for Java 7 and Android
 platforms are created as described below.
 
 ### Building a Binary Release Bundle
 
+Building from a source release bundle (lacking a `./gradlew`) requires
+performing a one-time bootstrap step using an installed version of gradle:
+``` sh
+$ gradle          # one time gradle build bootstrap setup.
+```
+
 Building an Edgent binary release bundle:
 ``` sh
 $ ./gradlew release
@@ -73,7 +80,8 @@ The Gradle tooling:
 The top-level Gradle file is `edgent/build.gradle` and it contains several
 unique tasks:
 
-* `assemble` (default) : Build all code and Javadoc into `build\distributions`. The build will fail on any code error or Javadoc warning or error.
+* `downloadWrapper` (default) : one-time bootstrap processing for use when building from a source release bundle 
+* `assemble` : Build all code and Javadoc into `build\distributions`. The build will fail on any code error or Javadoc warning or error.
 * `all` : Synonym for `assemble`
 * `build` : Essentially like "assemble test reports"
 * `clean` : Clean the project

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/e83df78e/README
----------------------------------------------------------------------
diff --git a/README b/README
index 8c3717f..59e10a6 100644
--- a/README
+++ b/README
@@ -17,8 +17,15 @@ or in the repository mirror at github https://github.com/apache/incubator-edgent
 
 Pre-requisites:
 - Java 8 is required to build an Edgent binary distribution
+- gradle (https://gradle.org/) only if building from a source release bundle
+
+Building from a source release bundle (lacking a ./gradlew) requires
+performing a one-time bootstrap step using an installed version of gradle:
+
+$ gradle          # one time gradle build bootstrap setup.
 
 Build an Edgent binary distribution:
+
 $ ./gradlew release   # .\gradlew.bat on Windows
 
 The build reports the location of the binary distribution bundle that can then

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/e83df78e/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 84305bc..4090017 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,7 +17,11 @@ specific language governing permissions and limitations
 under the License.
 */
  
-defaultTasks 'assemble'
+ext {
+  gradleVersion = "3.1"
+  gradleDistributionSha256Sum = "c7de3442432253525902f7e8d7eac8b5fd6ce1623f96d76916af6d0e383010fc"
+}
+apply from: 'wrapper.gradle'
 
 apply from: 'other.gradle'
 
@@ -745,6 +749,7 @@ task srcReleaseTarGz(type: Tar) {
   from '.'
   exclude 'KEYS'
   exclude '.git', '.gradle', '.settings'
+  exclude '.gradle-wrapper', 'gradlew', 'gradlew.bat'
   exclude '**/build/'           // gradle generated artifacts
   exclude '**/externalJars/'    // gradle generated artifacts for eclipse
   exclude '**/bin/'             // eclipse generated artifacts

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/e83df78e/wrapper.gradle
----------------------------------------------------------------------
diff --git a/wrapper.gradle b/wrapper.gradle
new file mode 100644
index 0000000..fbc49d7
--- /dev/null
+++ b/wrapper.gradle
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+defaultTasks 'downloadWrapper'
+
+task downloadWrapper(type: Wrapper) {
+    description = "Download the gradle wrapper and requisite files. Overwrites existing wrapper files."
+    jarFile = "${project.projectDir}/.gradle-wrapper/gradle-wrapper.jar"
+    
+    gradleVersion = project.gradleVersion
+    // ugh... must manually set in generated gradle-wrapper.properties
+    // distributionSha256Sum = project.gradleDistributionSha256Sum
+    
+    doLast {
+      File wrapperProps = file(propertiesFile)
+      wrapperProps.append("distributionSha256Sum=${project.gradleDistributionSha256Sum}\n");
+    }
+    doLast {
+      println "The gradle wrapper is now initialized." +
+            "\nUse ./gradlew for subsequent build operations."
+    }
+}
\ No newline at end of file


[2/3] incubator-edgent git commit: add trailing nl

Posted by dl...@apache.org.
add trailing nl

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

Branch: refs/heads/release1.0.0
Commit: 47297fcbd7ff913e8a921c4d7836847c9e6bfadc
Parents: e83df78
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Wed Nov 30 17:29:39 2016 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Wed Nov 30 17:29:39 2016 -0500

----------------------------------------------------------------------
 wrapper.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/47297fcb/wrapper.gradle
----------------------------------------------------------------------
diff --git a/wrapper.gradle b/wrapper.gradle
index fbc49d7..32fba02 100644
--- a/wrapper.gradle
+++ b/wrapper.gradle
@@ -35,4 +35,4 @@ task downloadWrapper(type: Wrapper) {
       println "The gradle wrapper is now initialized." +
             "\nUse ./gradlew for subsequent build operations."
     }
-}
\ No newline at end of file
+}


[3/3] incubator-edgent git commit: tidy up some gradle things

Posted by dl...@apache.org.
tidy up some gradle things

add gradle version check
remove old wrapper task
rename 'downloadWrapper' (misnomer) to classic 'wrapper' task name
move some buildscripts to new gradle folder

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

Branch: refs/heads/release1.0.0
Commit: c5111e5e382ab755a5dfede59e9ddd2b439cb815
Parents: 47297fc
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Thu Dec 1 09:46:44 2016 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Thu Dec 1 09:46:44 2016 -0500

----------------------------------------------------------------------
 DEVELOPMENT.md        |   2 +-
 build.gradle          |  17 ++---
 gradle.properties     |   7 ++
 gradle/jacoco.gradle  | 155 +++++++++++++++++++++++++++++++++++++++++++++
 gradle/javadoc.gradle |  59 +++++++++++++++++
 gradle/other.gradle   |  65 +++++++++++++++++++
 gradle/wrapper.gradle |  51 +++++++++++++++
 jacoco.gradle         | 155 ---------------------------------------------
 javadoc.gradle        |  59 -----------------
 other.gradle          |  65 -------------------
 wrapper.gradle        |  38 -----------
 11 files changed, 342 insertions(+), 331 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/DEVELOPMENT.md
----------------------------------------------------------------------
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 263a91e..00be84b 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -80,7 +80,7 @@ The Gradle tooling:
 The top-level Gradle file is `edgent/build.gradle` and it contains several
 unique tasks:
 
-* `downloadWrapper` (default) : one-time bootstrap processing for use when building from a source release bundle 
+* `wrapper` (default) : one-time bootstrap processing for use when building from a source release bundle 
 * `assemble` : Build all code and Javadoc into `build\distributions`. The build will fail on any code error or Javadoc warning or error.
 * `all` : Synonym for `assemble`
 * `build` : Essentially like "assemble test reports"

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 4090017..dfa253b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,13 +17,8 @@ specific language governing permissions and limitations
 under the License.
 */
  
-ext {
-  gradleVersion = "3.1"
-  gradleDistributionSha256Sum = "c7de3442432253525902f7e8d7eac8b5fd6ce1623f96d76916af6d0e383010fc"
-}
-apply from: 'wrapper.gradle'
-
-apply from: 'other.gradle'
+apply from: 'gradle/wrapper.gradle'
+apply from: 'gradle/other.gradle'
 
 import org.gradle.plugins.signing.Sign
 import java.io.Console
@@ -686,8 +681,8 @@ task createJunitReport << {
   ant.move(file: "TESTS-TestSuites.xml", tofile: "${target_report_dir}/TESTS-TestSuites.xml")
 }
 
-apply from: 'jacoco.gradle'
-apply from: 'javadoc.gradle'
+apply from: 'gradle/jacoco.gradle'
+apply from: 'gradle/javadoc.gradle'
 
 task addVersionDotTxt {
   description = 'Add version.txt in target_dir'
@@ -873,7 +868,3 @@ task setupExternalJars {
   description = 'Add all of the dependant external jars to the target-dir (make available to Eclipse, etc)'
   dependsOn setupCommonExtJars, filteredSubprojects.setupProjectExtJars
 }
-
-task wrapper(type: Wrapper) {
-  jarFile = rootProject.file('.gradle-wrapper/gradle-wrapper.jar')
-}

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/gradle.properties
----------------------------------------------------------------------
diff --git a/gradle.properties b/gradle.properties
index 004d9d8..291599b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,7 +14,14 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+
 build_group: org.apache.edgent
 build_name: edgent
 build_version: 1.0.0
 build_vendor: Apache Software Foundation
+
+# Minimum required gradle version and version for the wrapper to use.
+# Comment out gradleDistributionSha256Sum to disable validation of
+# a wrapper downloaded gradle distribution.
+gradleVersion = 3.1
+gradleDistributionSha256Sum = c7de3442432253525902f7e8d7eac8b5fd6ce1623f96d76916af6d0e383010fc

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/gradle/jacoco.gradle
----------------------------------------------------------------------
diff --git a/gradle/jacoco.gradle b/gradle/jacoco.gradle
new file mode 100644
index 0000000..bcdb738
--- /dev/null
+++ b/gradle/jacoco.gradle
@@ -0,0 +1,155 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+ 
+task jacocoTestReport {
+  description = "Generates a coverage report from all subprojects (use after 'test')"
+  ext.test7AdjustJacocoReport = false
+}
+jacocoTestReport << {
+
+  ant.delete(dir: "${target_report_dir}/coverage")
+
+  def libDir = new File("${target_java8_dir}", "lib")
+  def utilsDir = new File("${target_java8_dir}", "utils")
+  def connectorsDir = new File("${target_java8_dir}", "connectors")
+  def analyticsDir = new File("${target_java8_dir}", "analytics")
+  def consoleDir = new File("${target_java8_dir}", "console")
+
+  if( !libDir.exists() ) { libDir.mkdirs() }
+  if( !utilsDir.exists() ) { utilsDir.mkdirs() }
+  if( !connectorsDir.exists() ) { connectorsDir.mkdirs() }
+  if( !analyticsDir.exists() ) { analyticsDir.mkdirs() }
+  if( !consoleDir.exists() ) { consoleDir.mkdirs() }
+
+  FileCollection executionData = files()
+
+  subprojects.findAll { subproject ->
+    subproject.pluginManager.hasPlugin('java') && subproject.pluginManager.hasPlugin('jacoco')
+  }.each { subproject ->
+    executionData += subproject.tasks.jacocoTestReport.executionData
+  }
+
+  executionData = files(executionData.findAll {
+    it.exists()
+  })
+  ant.taskdef(name: 'jacocoReport', classname: 'org.jacoco.ant.ReportTask',
+          classpath: configurations.junitLibs.asPath)
+  ant.jacocoReport {
+    executiondata {
+      executionData.addToAntBuilder(ant, 'resources')
+    }
+
+    platformTargetDir = target_java8_dir
+    if (test7AdjustJacocoReport) {
+      platformTargetDir = target_java7_dir
+    }
+
+    structure(name: project.name) {
+      group(name: "Edgent API") {
+        classfiles {
+          fileset(dir: "$platformTargetDir/lib", includes: "edgent.api.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./api/function/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/execution/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/oplet/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/graph/src/main/java", includes: "**/*.java")
+          fileset(dir: "./api/topology/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent SPI") {
+        classfiles {
+          fileset(dir: "$platformTargetDir/lib", includes: "edgent.spi.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./spi/graph/src/main/java", includes: "**/*.java")
+          fileset(dir: "./spi/topology/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Runtime") {
+        classfiles {
+          fileset(dir: "$platformTargetDir/lib", includes: "edgent.runtime.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./runtime/etiao/src/main/java", includes: "**/*.java")
+          fileset(dir: "./runtime/jmxcontrol/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Utilities") {
+        classfiles {
+          fileset(dir: "$platformTargetDir/utils", includes: "**/edgent.utils.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./utils/metrics/src/main/java", includes: "**/*.java")
+          fileset(dir: "./utils/streamscope/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Connectors") {
+        classfiles {
+          fileset(dir: "$platformTargetDir/connectors", includes: "**/edgent.connectors.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./connectors/common/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/command/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/csv/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/file/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/iot/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/iotp/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/jdbc/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/kafka/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/mqtt/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/http/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/wsclient/src/main/java", includes: "**/*.java")
+          fileset(dir: "./connectors/wsclient-javax.websocket/src/main/java", includes: "**/*.java")
+        }
+      }
+      group(name: "Edgent Providers") {
+        classfiles {
+          fileset(dir: "$platformTargetDir/lib", includes: "edgent.providers.*.jar")
+        }
+        sourcefiles {
+          fileset(dir: "./providers/direct/src/main/java", includes: "**/*.java")
+          fileset(dir: "./providers/development/src/main/java", includes: "**/*.java")
+        }
+      }
+      if (!test7AdjustJacocoReport) {
+        group(name: "Edgent Analytics") {
+          classfiles {
+            fileset(dir: "$platformTargetDir/analytics", includes: "**/edgent.analytics.*.jar")
+          }
+          sourcefiles {
+            fileset(dir: "./analytics/math3/src/main/java", includes: "**/*.java")
+            fileset(dir: "./analytics/sensors/src/main/java", includes: "**/*.java")
+          }
+        }
+        group(name: "Edgent Console") {
+          classfiles {
+            fileset(dir: "$platformTargetDir/console", includes: "**/edgent.console.*.jar")
+          }
+          sourcefiles {
+            fileset(dir: "./console/server/src/main/java", includes: "**/*.java")
+            fileset(dir: "./console/servlets/src/main/java", includes: "**/*.java")
+          }
+        }
+      }
+    }
+    html(destdir: "${target_report_dir}/coverage/")
+    xml(destfile: "${target_report_dir}/coverage/jacoco-sessions.xml")
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/gradle/javadoc.gradle
----------------------------------------------------------------------
diff --git a/gradle/javadoc.gradle b/gradle/javadoc.gradle
new file mode 100644
index 0000000..85bfff3
--- /dev/null
+++ b/gradle/javadoc.gradle
@@ -0,0 +1,59 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+task aggregateJavadoc(type: Javadoc) {
+  description = 'Create all javadoc into target_dir/docs/javadoc'
+  destinationDir file(target_javadoc_dir)
+  options.addStringOption('Xdoclint:none', '-quiet')
+  configure(options) {
+    author = true
+    version = true
+    use = true
+    docTitle "Apache Edgent (incubating) v${build_version}"
+    footer '<a href="http://edgent.incubator.apache.org">Apache Edgent (incubating)</a>'
+    bottom "Copyright &#169; ${COPYRIGHT_YEAR} The Apache Software Foundation. All Rights Reserved - ${commithash}-${DSTAMP}-${TSTAMP}"
+    overview "edgent_overview.html"
+    windowTitle "Edgent v${build_version}"
+
+    group("Edgent Providers", "org.apache.edgent.providers.*")
+    group("Edgent API", "org.apache.edgent.execution", "org.apache.edgent.function", "org.apache.edgent.topology", "org.apache.edgent.topology.json", "org.apache.edgent.topology.mbeans", "org.apache.edgent.topology.plumbing", "org.apache.edgent.topology.services", "org.apache.edgent.execution.*")
+    group("Edgent Analytics", "org.apache.edgent.analytics.*")
+    group("Edgent Utilities", "org.apache.edgent.metrics", "org.apache.edgent.metrics.*", "org.apache.edgent.streamscope", "org.apache.edgent.streamscope.*")
+    group("Edgent Connectors", "org.apache.edgent.connectors.*")
+    group("Edgent Samples", "org.apache.edgent.samples.*")
+    group("Edgent Low-Level API", "org.apache.edgent.graph", "org.apache.edgent.graph.*", "org.apache.edgent.oplet", "org.apache.edgent.oplet.*", "org.apache.edgent.window")
+    group("Edgent SPI", "org.apache.edgent.topology.spi", "org.apache.edgent.topology.spi.*")
+  }
+  source subprojects.collect { project -> project.sourceSets.main.allJava }
+  exclude "**/edgent/connectors/**/runtime"
+  exclude "**/edgent/console"
+  exclude "**/edgent/samples/scenarios/iotp/range/sensor"
+  exclude "**/android/**"
+  classpath = files(filteredSubprojects.collect { it.jar.archivePath })
+  
+  // doc-files aren't picked up automatically so get them now.
+  doLast {
+    copy {
+      from subprojects.collect { project -> project.sourceSets.main.java.srcDirs }
+      include '**/doc-files/**'
+      includeEmptyDirs = false
+      into target_javadoc_dir
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/gradle/other.gradle
----------------------------------------------------------------------
diff --git a/gradle/other.gradle b/gradle/other.gradle
new file mode 100644
index 0000000..944bacf
--- /dev/null
+++ b/gradle/other.gradle
@@ -0,0 +1,65 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+ext.unsupportedJava7TestProjects = [  // why not on all of these? (match ant_test7.run, see JAVA_SUPPORT.md)
+  // projects with no tests will be automatically avoided for java7 tests
+  // otherwise those that are not yet supported for java7 (not in ant_test7.{setup,run}) must be added here
+  ':api:graph',       // no runnable tests
+  ':analytics:math3',
+  ':analytics:sensors',
+  ':connectors:command',
+  ':connectors:csv',
+  ':connectors:file',
+  ':connectors:jdbc',
+  ':connectors:mqtt',
+  ':connectors:kafka',
+  ':connectors:serial',
+  ':connectors:wsclient',
+  ':connectors:wsclient-javax.websocket',
+  ':connectors:javax.websocket-client',
+  ':connectors:edgent.javax.websocket',
+  ':connectors:javax.websocket-server',
+  ':console:server',
+  ':console:servlets',
+  ':providers:development',
+  ':utils:streamscope',
+  ':test:fvtiot',
+  ':test:svt',
+]
+
+ext.projectsWithPreApacheContribs = [
+  ':analytics:math3', ':analytics:sensors',
+  ':android:topology', ':android:hardware',
+  ':api:function', ':api:execution', ':api:window', ':api:oplet',
+  ':api:graph', ':api:topology',
+  ':connectors:common', ':connectors:iot', ':connectors:serial',
+  ':connectors:file', ':connectors:http', ':connectors:iotp',
+  ':connectors:jdbc', ':connectors:kafka', ':connectors:mqtt',
+  ':connectors:edgent.javax.websocket',
+  ':connectors:javax.websocket-client', ':connectors:javax.websocket-server',
+  ':connectors:wsclient', ':connectors:wsclient-javax.websocket',
+  ':console:server', ':console:servlets',
+  ':providers:direct', ':providers:development',
+  ':runtime:etiao', ':runtime:jmxcontrol', ':runtime:jsoncontrol',
+  ':samples:utils', ':samples:apps', ':samples:topology', ':samples:connectors',
+  ':samples:console',
+  ':spi:graph', ':spi:topology',
+  ':test:svt',
+  ':utils:metrics',
+]

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/gradle/wrapper.gradle
----------------------------------------------------------------------
diff --git a/gradle/wrapper.gradle b/gradle/wrapper.gradle
new file mode 100644
index 0000000..557a8f8
--- /dev/null
+++ b/gradle/wrapper.gradle
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+defaultTasks 'wrapper'
+
+task wrapper(type: Wrapper) {
+    description = "Initialize the gradle wrapper. Overwrites existing wrapper files."
+    jarFile = "${project.projectDir}/.gradle-wrapper/gradle-wrapper.jar"
+    
+    gradleVersion = project.gradleVersion
+    // ugh... must manually set in generated gradle-wrapper.properties
+    // distributionSha256Sum = project.gradleDistributionSha256Sum
+    
+    doLast {
+      if (project.hasProperty("gradleDistributionSha256Sum")) {
+        File wrapperProps = file(propertiesFile)
+        wrapperProps.append("distributionSha256Sum=${project.gradleDistributionSha256Sum}\n");
+      }
+    }
+    doLast {
+      println "The gradle wrapper is now initialized." +
+            "\nUse ./gradlew for subsequent build operations."
+    }
+}
+
+gradle.taskGraph.whenReady {taskGraph ->
+  if (!taskGraph.hasTask(wrapper)) {
+    if (GradleVersion.current() < GradleVersion.version(gradleVersion)) {
+      throw new GradleException('Running with unsupported Gradle Version (' + GradleVersion.current() + ').' +
+              '\nUse Gradle Wrapper or with Gradle version >= ' + gradleVersion +
+              '\nRun \'gradle\' (default task) to initialize the wrapper.')
+    }
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/jacoco.gradle
----------------------------------------------------------------------
diff --git a/jacoco.gradle b/jacoco.gradle
deleted file mode 100644
index bcdb738..0000000
--- a/jacoco.gradle
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
- 
-task jacocoTestReport {
-  description = "Generates a coverage report from all subprojects (use after 'test')"
-  ext.test7AdjustJacocoReport = false
-}
-jacocoTestReport << {
-
-  ant.delete(dir: "${target_report_dir}/coverage")
-
-  def libDir = new File("${target_java8_dir}", "lib")
-  def utilsDir = new File("${target_java8_dir}", "utils")
-  def connectorsDir = new File("${target_java8_dir}", "connectors")
-  def analyticsDir = new File("${target_java8_dir}", "analytics")
-  def consoleDir = new File("${target_java8_dir}", "console")
-
-  if( !libDir.exists() ) { libDir.mkdirs() }
-  if( !utilsDir.exists() ) { utilsDir.mkdirs() }
-  if( !connectorsDir.exists() ) { connectorsDir.mkdirs() }
-  if( !analyticsDir.exists() ) { analyticsDir.mkdirs() }
-  if( !consoleDir.exists() ) { consoleDir.mkdirs() }
-
-  FileCollection executionData = files()
-
-  subprojects.findAll { subproject ->
-    subproject.pluginManager.hasPlugin('java') && subproject.pluginManager.hasPlugin('jacoco')
-  }.each { subproject ->
-    executionData += subproject.tasks.jacocoTestReport.executionData
-  }
-
-  executionData = files(executionData.findAll {
-    it.exists()
-  })
-  ant.taskdef(name: 'jacocoReport', classname: 'org.jacoco.ant.ReportTask',
-          classpath: configurations.junitLibs.asPath)
-  ant.jacocoReport {
-    executiondata {
-      executionData.addToAntBuilder(ant, 'resources')
-    }
-
-    platformTargetDir = target_java8_dir
-    if (test7AdjustJacocoReport) {
-      platformTargetDir = target_java7_dir
-    }
-
-    structure(name: project.name) {
-      group(name: "Edgent API") {
-        classfiles {
-          fileset(dir: "$platformTargetDir/lib", includes: "edgent.api.*.jar")
-        }
-        sourcefiles {
-          fileset(dir: "./api/function/src/main/java", includes: "**/*.java")
-          fileset(dir: "./api/execution/src/main/java", includes: "**/*.java")
-          fileset(dir: "./api/oplet/src/main/java", includes: "**/*.java")
-          fileset(dir: "./api/graph/src/main/java", includes: "**/*.java")
-          fileset(dir: "./api/topology/src/main/java", includes: "**/*.java")
-        }
-      }
-      group(name: "Edgent SPI") {
-        classfiles {
-          fileset(dir: "$platformTargetDir/lib", includes: "edgent.spi.*.jar")
-        }
-        sourcefiles {
-          fileset(dir: "./spi/graph/src/main/java", includes: "**/*.java")
-          fileset(dir: "./spi/topology/src/main/java", includes: "**/*.java")
-        }
-      }
-      group(name: "Edgent Runtime") {
-        classfiles {
-          fileset(dir: "$platformTargetDir/lib", includes: "edgent.runtime.*.jar")
-        }
-        sourcefiles {
-          fileset(dir: "./runtime/etiao/src/main/java", includes: "**/*.java")
-          fileset(dir: "./runtime/jmxcontrol/src/main/java", includes: "**/*.java")
-        }
-      }
-      group(name: "Edgent Utilities") {
-        classfiles {
-          fileset(dir: "$platformTargetDir/utils", includes: "**/edgent.utils.*.jar")
-        }
-        sourcefiles {
-          fileset(dir: "./utils/metrics/src/main/java", includes: "**/*.java")
-          fileset(dir: "./utils/streamscope/src/main/java", includes: "**/*.java")
-        }
-      }
-      group(name: "Edgent Connectors") {
-        classfiles {
-          fileset(dir: "$platformTargetDir/connectors", includes: "**/edgent.connectors.*.jar")
-        }
-        sourcefiles {
-          fileset(dir: "./connectors/common/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/command/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/csv/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/file/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/iot/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/iotp/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/jdbc/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/kafka/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/mqtt/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/http/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/wsclient/src/main/java", includes: "**/*.java")
-          fileset(dir: "./connectors/wsclient-javax.websocket/src/main/java", includes: "**/*.java")
-        }
-      }
-      group(name: "Edgent Providers") {
-        classfiles {
-          fileset(dir: "$platformTargetDir/lib", includes: "edgent.providers.*.jar")
-        }
-        sourcefiles {
-          fileset(dir: "./providers/direct/src/main/java", includes: "**/*.java")
-          fileset(dir: "./providers/development/src/main/java", includes: "**/*.java")
-        }
-      }
-      if (!test7AdjustJacocoReport) {
-        group(name: "Edgent Analytics") {
-          classfiles {
-            fileset(dir: "$platformTargetDir/analytics", includes: "**/edgent.analytics.*.jar")
-          }
-          sourcefiles {
-            fileset(dir: "./analytics/math3/src/main/java", includes: "**/*.java")
-            fileset(dir: "./analytics/sensors/src/main/java", includes: "**/*.java")
-          }
-        }
-        group(name: "Edgent Console") {
-          classfiles {
-            fileset(dir: "$platformTargetDir/console", includes: "**/edgent.console.*.jar")
-          }
-          sourcefiles {
-            fileset(dir: "./console/server/src/main/java", includes: "**/*.java")
-            fileset(dir: "./console/servlets/src/main/java", includes: "**/*.java")
-          }
-        }
-      }
-    }
-    html(destdir: "${target_report_dir}/coverage/")
-    xml(destfile: "${target_report_dir}/coverage/jacoco-sessions.xml")
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/javadoc.gradle
----------------------------------------------------------------------
diff --git a/javadoc.gradle b/javadoc.gradle
deleted file mode 100644
index 85bfff3..0000000
--- a/javadoc.gradle
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-
-task aggregateJavadoc(type: Javadoc) {
-  description = 'Create all javadoc into target_dir/docs/javadoc'
-  destinationDir file(target_javadoc_dir)
-  options.addStringOption('Xdoclint:none', '-quiet')
-  configure(options) {
-    author = true
-    version = true
-    use = true
-    docTitle "Apache Edgent (incubating) v${build_version}"
-    footer '<a href="http://edgent.incubator.apache.org">Apache Edgent (incubating)</a>'
-    bottom "Copyright &#169; ${COPYRIGHT_YEAR} The Apache Software Foundation. All Rights Reserved - ${commithash}-${DSTAMP}-${TSTAMP}"
-    overview "edgent_overview.html"
-    windowTitle "Edgent v${build_version}"
-
-    group("Edgent Providers", "org.apache.edgent.providers.*")
-    group("Edgent API", "org.apache.edgent.execution", "org.apache.edgent.function", "org.apache.edgent.topology", "org.apache.edgent.topology.json", "org.apache.edgent.topology.mbeans", "org.apache.edgent.topology.plumbing", "org.apache.edgent.topology.services", "org.apache.edgent.execution.*")
-    group("Edgent Analytics", "org.apache.edgent.analytics.*")
-    group("Edgent Utilities", "org.apache.edgent.metrics", "org.apache.edgent.metrics.*", "org.apache.edgent.streamscope", "org.apache.edgent.streamscope.*")
-    group("Edgent Connectors", "org.apache.edgent.connectors.*")
-    group("Edgent Samples", "org.apache.edgent.samples.*")
-    group("Edgent Low-Level API", "org.apache.edgent.graph", "org.apache.edgent.graph.*", "org.apache.edgent.oplet", "org.apache.edgent.oplet.*", "org.apache.edgent.window")
-    group("Edgent SPI", "org.apache.edgent.topology.spi", "org.apache.edgent.topology.spi.*")
-  }
-  source subprojects.collect { project -> project.sourceSets.main.allJava }
-  exclude "**/edgent/connectors/**/runtime"
-  exclude "**/edgent/console"
-  exclude "**/edgent/samples/scenarios/iotp/range/sensor"
-  exclude "**/android/**"
-  classpath = files(filteredSubprojects.collect { it.jar.archivePath })
-  
-  // doc-files aren't picked up automatically so get them now.
-  doLast {
-    copy {
-      from subprojects.collect { project -> project.sourceSets.main.java.srcDirs }
-      include '**/doc-files/**'
-      includeEmptyDirs = false
-      into target_javadoc_dir
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/other.gradle
----------------------------------------------------------------------
diff --git a/other.gradle b/other.gradle
deleted file mode 100644
index 944bacf..0000000
--- a/other.gradle
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-
-ext.unsupportedJava7TestProjects = [  // why not on all of these? (match ant_test7.run, see JAVA_SUPPORT.md)
-  // projects with no tests will be automatically avoided for java7 tests
-  // otherwise those that are not yet supported for java7 (not in ant_test7.{setup,run}) must be added here
-  ':api:graph',       // no runnable tests
-  ':analytics:math3',
-  ':analytics:sensors',
-  ':connectors:command',
-  ':connectors:csv',
-  ':connectors:file',
-  ':connectors:jdbc',
-  ':connectors:mqtt',
-  ':connectors:kafka',
-  ':connectors:serial',
-  ':connectors:wsclient',
-  ':connectors:wsclient-javax.websocket',
-  ':connectors:javax.websocket-client',
-  ':connectors:edgent.javax.websocket',
-  ':connectors:javax.websocket-server',
-  ':console:server',
-  ':console:servlets',
-  ':providers:development',
-  ':utils:streamscope',
-  ':test:fvtiot',
-  ':test:svt',
-]
-
-ext.projectsWithPreApacheContribs = [
-  ':analytics:math3', ':analytics:sensors',
-  ':android:topology', ':android:hardware',
-  ':api:function', ':api:execution', ':api:window', ':api:oplet',
-  ':api:graph', ':api:topology',
-  ':connectors:common', ':connectors:iot', ':connectors:serial',
-  ':connectors:file', ':connectors:http', ':connectors:iotp',
-  ':connectors:jdbc', ':connectors:kafka', ':connectors:mqtt',
-  ':connectors:edgent.javax.websocket',
-  ':connectors:javax.websocket-client', ':connectors:javax.websocket-server',
-  ':connectors:wsclient', ':connectors:wsclient-javax.websocket',
-  ':console:server', ':console:servlets',
-  ':providers:direct', ':providers:development',
-  ':runtime:etiao', ':runtime:jmxcontrol', ':runtime:jsoncontrol',
-  ':samples:utils', ':samples:apps', ':samples:topology', ':samples:connectors',
-  ':samples:console',
-  ':spi:graph', ':spi:topology',
-  ':test:svt',
-  ':utils:metrics',
-]

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/c5111e5e/wrapper.gradle
----------------------------------------------------------------------
diff --git a/wrapper.gradle b/wrapper.gradle
deleted file mode 100644
index 32fba02..0000000
--- a/wrapper.gradle
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-defaultTasks 'downloadWrapper'
-
-task downloadWrapper(type: Wrapper) {
-    description = "Download the gradle wrapper and requisite files. Overwrites existing wrapper files."
-    jarFile = "${project.projectDir}/.gradle-wrapper/gradle-wrapper.jar"
-    
-    gradleVersion = project.gradleVersion
-    // ugh... must manually set in generated gradle-wrapper.properties
-    // distributionSha256Sum = project.gradleDistributionSha256Sum
-    
-    doLast {
-      File wrapperProps = file(propertiesFile)
-      wrapperProps.append("distributionSha256Sum=${project.gradleDistributionSha256Sum}\n");
-    }
-    doLast {
-      println "The gradle wrapper is now initialized." +
-            "\nUse ./gradlew for subsequent build operations."
-    }
-}