handle external dependency staging and manifest-classpath

- rename copyJar => updateTargetDir
- rename ext_classpath => core_ext_dependencies
- add definitions of sample and test common external dependencies
- stage core external dependencies - note, no longer in subdirs under
ext
- stage sample common external dependencies
- stage each project's external dependencies
- add project's ext dependant jars to its manifest-classpath

- running samples from build/distributions/java8/... works
- running "./gradlew clean test reports" still works (though still
doesn't test target-dir jars)
- staging more project external dependency jars than ant scripts due to
very selective/specific nature or ant scripts vs gradle/maven
transistive dependencies
- staging of project's external dependencies (in <proj>/ext/...) is now
flat vs ant script due to how those external dependency jars were
located in the repository
- staging of common external jars (in targetDir/ext) is now flat vs and
script due to how those external dependency jars were located in the
repository
- TODO best practice of keeping version name in jars (edgent jars)
- TODO notice/license issue for external jars in the targetDir/tgz (none
present now)
- TODO connectors/iotp/ext is getting paho mqtt SNAPSHOT jar
- connectors/javax.websocket-server/ext has quite a bit more jars
- connectors/kafka/ext has quite a bit more jars
- TODO still getting undesired jar rebuilds due to DSTAMP/TSTAMP
- TODO run of mqtt, kafka, websocket tests

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

Branch: refs/heads/master
Commit: 76c1972c3dca40f21113f601495d473dd2332807
Parents: 5ad8926
Author: Dale LaBossiere <[email protected]>
Authored: Tue Aug 30 17:00:32 2016 -0400
Committer: Dale LaBossiere <[email protected]>
Committed: Tue Aug 30 17:00:32 2016 -0400

----------------------------------------------------------------------
 analytics/math3/build.gradle                    |   2 +-
 analytics/sensors/build.gradle                  |   2 +-
 api/execution/build.gradle                      |   2 +-
 api/function/build.gradle                       |   2 +-
 api/graph/build.gradle                          |   2 +-
 api/oplet/build.gradle                          |   2 +-
 api/topology/build.gradle                       |   2 +-
 api/window/build.gradle                         |   2 +-
 build.gradle                                    | 290 ++++++++++++-------
 connectors/command/build.gradle                 |   2 +-
 connectors/common/build.gradle                  |   2 +-
 connectors/csv/build.gradle                     |   2 +-
 connectors/edgent.javax.websocket/build.gradle  |   2 +-
 connectors/file/build.gradle                    |   2 +-
 connectors/http/build.gradle                    |   2 +-
 connectors/iot/build.gradle                     |   2 +-
 connectors/iotp/build.gradle                    |   2 +-
 connectors/javax.websocket-client/build.gradle  |   2 +-
 connectors/javax.websocket-server/build.gradle  |   2 +-
 connectors/jdbc/build.gradle                    |   2 +-
 connectors/kafka/build.gradle                   |   2 +-
 connectors/mqtt/build.gradle                    |   2 +-
 connectors/pubsub/build.gradle                  |   2 +-
 connectors/serial/build.gradle                  |   2 +-
 .../wsclient-javax.websocket/build.gradle       |   2 +-
 connectors/wsclient/build.gradle                |   2 +-
 console/server/build.gradle                     |   2 +-
 console/servlets/build.gradle                   |   2 +-
 providers/direct/build.gradle                   |   2 +-
 runtime/appservice/build.gradle                 |   2 +-
 runtime/etiao/build.gradle                      |   2 +-
 runtime/jmxcontrol/build.gradle                 |   2 +-
 runtime/jobregistry/build.gradle                |   2 +-
 runtime/jsoncontrol/build.gradle                |   2 +-
 samples/apps/build.gradle                       |   4 +-
 samples/connectors/build.gradle                 |   4 +-
 samples/console/build.gradle                    |   4 +-
 samples/scenarios/build.gradle                  |   4 +-
 samples/topology/build.gradle                   |   4 +-
 samples/utils/build.gradle                      |   4 +-
 spi/graph/build.gradle                          |   2 +-
 spi/topology/build.gradle                       |   2 +-
 test/fvtiot/build.gradle                        |   2 +-
 test/svt/build.gradle                           |   2 +-
 utils/metrics/build.gradle                      |   2 +-
 utils/streamscope/build.gradle                  |   2 +-
 46 files changed, 244 insertions(+), 148 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/analytics/math3/build.gradle
----------------------------------------------------------------------
diff --git a/analytics/math3/build.gradle b/analytics/math3/build.gradle
index 3bcf300..1a6f47c 100644
--- a/analytics/math3/build.gradle
+++ b/analytics/math3/build.gradle
@@ -14,7 +14,7 @@
 dependencies {
   compile project(':api:topology')
   compile 'org.apache.commons:commons-math3:3.4.1'
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/analytics/sensors/build.gradle
----------------------------------------------------------------------
diff --git a/analytics/sensors/build.gradle b/analytics/sensors/build.gradle
index 95799ea..c15c7ef 100644
--- a/analytics/sensors/build.gradle
+++ b/analytics/sensors/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/api/execution/build.gradle
----------------------------------------------------------------------
diff --git a/api/execution/build.gradle b/api/execution/build.gradle
index 091f802..d136bd0 100644
--- a/api/execution/build.gradle
+++ b/api/execution/build.gradle
@@ -13,5 +13,5 @@
  */
 dependencies {
   compile project(':api:function')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/api/function/build.gradle
----------------------------------------------------------------------
diff --git a/api/function/build.gradle b/api/function/build.gradle
index 6708dbd..332495b 100644
--- a/api/function/build.gradle
+++ b/api/function/build.gradle
@@ -12,5 +12,5 @@
  * limitations under the License.
  */
 dependencies {
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/api/graph/build.gradle
----------------------------------------------------------------------
diff --git a/api/graph/build.gradle b/api/graph/build.gradle
index 9c42b9c..b8e275a 100644
--- a/api/graph/build.gradle
+++ b/api/graph/build.gradle
@@ -13,5 +13,5 @@
  */
 dependencies {
   compile project(':api:oplet')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/api/oplet/build.gradle
----------------------------------------------------------------------
diff --git a/api/oplet/build.gradle b/api/oplet/build.gradle
index 00f2034..9438108 100644
--- a/api/oplet/build.gradle
+++ b/api/oplet/build.gradle
@@ -15,5 +15,5 @@ dependencies {
   compile project(':api:function')
   compile project(':api:execution')
   compile project(':api:window')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/api/topology/build.gradle
----------------------------------------------------------------------
diff --git a/api/topology/build.gradle b/api/topology/build.gradle
index 0c9ba12..75df1df 100644
--- a/api/topology/build.gradle
+++ b/api/topology/build.gradle
@@ -15,7 +15,7 @@ dependencies {
   compile project(':api:execution')
   compile project(':api:graph')
   compile project(':api:oplet')
-  compile ext_classpath
+  compile core_ext_dependencies
 }
 
 //Build a jar file containing the applications to test the ApplicationService

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/api/window/build.gradle
----------------------------------------------------------------------
diff --git a/api/window/build.gradle b/api/window/build.gradle
index 091f802..d136bd0 100644
--- a/api/window/build.gradle
+++ b/api/window/build.gradle
@@ -13,5 +13,5 @@
  */
 dependencies {
   compile project(':api:function')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index e4f5405..6de05ae 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,6 +22,8 @@ allprojects {
   repositories {
     mavenCentral()
     maven {
+      // TODO - is this the right repo to use?
+      // related?... watson-iot-0.1.1.jar ends up referencing 
org.eclipse.paho.client.mqttv3-1.0.3-SNAPSHOT.jar
       url 'https://repo.eclipse.org/content/repositories/paho-snapshots/'
     }
   }
@@ -45,16 +47,15 @@ ext {
   now = new Date()
   DSTAMP = String.format('%tY%<tm%<td', now)
   TSTAMP = String.format('%tH%<tM', now)
-  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']
+                   
   target_dir = "$distsDir"
-  target_java8_dir = "${ext.target_dir}/java8"
-  target_java7_dir = "${ext.target_dir}/java7"
-  target_android_dir = "${ext.target_dir}/android"
-  target_docs_dir = "${ext.target_dir}/docs"
-  target_javadoc_dir = "${ext.target_docs_dir}/javadoc"
-  target_report_dir = "${ext.target_dir}/reports"
+  target_java8_dir = "$target_dir/java8"
+  target_java8_ext_dir = "$target_java8_dir/ext"
+  target_java7_dir = "$target_dir/java7"
+  target_android_dir = "$target_dir/android"
+  target_docs_dir = "$target_dir/docs"
+  target_javadoc_dir = "$target_docs_dir/javadoc"
+  target_report_dir = "$target_dir/reports"
  
   // project groups whose jars are to be placed in target_java8_lib
   // instead of the default 
"$target_java8_dir/$simpleProjectGroup/$project.name/lib"
@@ -78,14 +79,38 @@ ext {
   // for manifest classpath hackery
   jarNameToProjectMap = [:]  // e.g., "edgent.connectors.iotp-0.4.0.jar" => 
Project(':component:iotp')
   projectToJarNameMap = [:]
+  
+  // Edgent core external dependencies
+  core_ext_dependencies = ['com.google.code.gson:gson:2.2.4',
+                   'org.slf4j:slf4j-api:1.7.12',
+                   'io.dropwizard.metrics:metrics-core:3.1.2']
+  copied_core_ext_dependencies_jars = false
+  
+  // Edgent Samples external dependencies
+  samples_ext_dependencies = ['org.slf4j:slf4j-jdk14:1.7.12']
+  copied_samples_ext_dependencies_jars = false
+
+  // Edgent tests external dependencies
+  tests_ext_dependencies = ['org.slf4j:slf4j-jdk14:1.7.12']
+  copied_tests_ext_dependencies_jars = false
+  
+  common_ext_dependencies = [
+    core_ext_dependencies,
+    samples_ext_dependencies,
+    // tests_ext_dependencies, // omit as tests aren't included in release tgz
+  ].flatten()
 }
 
 def recordProjectJar(Project proj) {
   // manifest classpath hackery: update maps of project's jar <=> Project
+  // This, and use of these maps, is fallout from floundering
+  // trying to leverage the gradle object model for dealing with
+  // project (and dependent project) artifacts and/or other nice
+  // gradle declaritive-isms for dealing with this.
   def jarName = "${proj.group}.${proj.name}-${project.version}.jar"
   jarNameToProjectMap[jarName] = proj
   projectToJarNameMap[proj] = jarName
-  //println "#### updated jar <=> project maps: "+"$proj : $jarName"
+  //println "#### $proj.path updated jar <=> project maps: $jarName"
 }
 
 def String mkJarNameFromSpec(String jarSpec) {
@@ -115,7 +140,7 @@ def String mkRelativePath(String dir1, String dir2) {
 }
 
 // e.g., =>  "lib" or "<component>/<subcomponent>/lib"
-def String getRelProjectDirInTargetDir(Project proj, String kind) {  // kind: 
"lib", "ext"
+def String getTargetRelProjDir(Project proj, String kind) {  // kind: "lib", 
"ext"
   // the general case location
   def simpleProjectGroup = getSimpleProjectGroup(proj);
   def relProjDir = "$simpleProjectGroup/$proj.name/$kind"
@@ -136,105 +161,116 @@ def String getRelProjectDirInTargetDir(Project proj, 
String kind) {  // kind: "l
 // in their project's dir in the target dir
 // 
 // e.g., returns ['../../../lib/edgent.api.topology.jar', ...]
-def Collection getRelDirectDependantProjJars(Project proj) {
-  //println "#### proj: " + proj
+def Collection getTargetRelDirectDependantProjJars(Project proj) {
 
   def directDependantProjects = proj.configurations.compile.dependencies
             .withType(ProjectDependency.class)
             .collect { it.dependencyProject }
-  //println "#### directDependantProjects: " + directDependantProjects
+  //println "#### $proj.path directDependantProjects: $directDependantProjects"
   
   def directDependantProjJars = directDependantProjects.collect {
-    def relProjDirInTarget = getRelProjectDirInTargetDir(it, 'lib')
+    def relProjDirInTarget = getTargetRelProjDir(it, 'lib')
     def jarName = projectToJarNameMap[it]
     "$relProjDirInTarget/$jarName"
   }
   
   // make relative paths from the project's dir in targetDir to the
   // jars in the dependent projects' dir in targetDir
-  def myProjDirInTargetDir = getRelProjectDirInTargetDir(proj, 'lib')
+  def myProjDirInTargetDir = getTargetRelProjDir(proj, 'lib')
   def relDependantJars = directDependantProjJars.collect {
     mkRelativePath(myProjDirInTargetDir, it)
   }
-  //println "#### relDependantJars: "+relDependantJars
+  //println "#### $proj.path relDependantJars: $relDependantJars"
   return relDependantJars
 }
 
 // e.g., returns ['../../../ext/gson-2.2.4.jar', ...]
-def Collection getRelCoreExtDependantJars(Project proj) {
+def Collection getTargetRelDependantCommonExtJars(Project proj, Collection 
ext_dependencies) {
   // make relative paths from the project's dir in targetDir to the
-  // "ext" dir in targetDir
-  def myProjDirInTargetDir = getRelProjectDirInTargetDir(proj, 'lib')
-  def relDependantJars = ext_classpath.collect {
+  // "ext" dir in targetDir (target_java8_ext_dir)
+  def myProjDirInTargetDir = getTargetRelProjDir(proj, 'lib')
+  def relDependantJars = ext_dependencies.collect {
     jarSpec ->
-    def jarName = mkJarNameFromSpec jarSpec
-    def relativeDependantJarDir = mkRelativePath(myProjDirInTargetDir, 'ext')
-    "$relativeDependantJarDir/$jarName"
+      def jarName = mkJarNameFromSpec jarSpec
+      def relativeDependantJarDir = mkRelativePath(myProjDirInTargetDir, 'ext')
+      "$relativeDependantJarDir/$jarName"
   }
-  //println "#### relDependantJars: "+relDependantJars
+  //println "#### $proj.path relDependantJars: $relDependantJars"
   return relDependantJars
 }
 
+def getProjectExtDepFiles(Project proj) { // project's direct ext deps and 
their transitive deps
+  // TODO suspect this is picking up ext dependencies of transitive 
**project** dependencies???
+  def allExtDepFiles = proj.configurations.runtime.files { it instanceof 
ExternalDependency }
+  logger.info "$proj.path allExtDepFiles: "+allExtDepFiles
+  return allExtDepFiles
+}
+ 
+def getProjectNonCommonExtDepFiles(Project proj) {
+  // filter out "common" (target_java8_ext_dir) external dependencies
+  def commonExtJarNames = common_ext_dependencies.collect {
+    mkJarNameFromSpec it
+  }
+  def filteredExtDepFiles = getProjectExtDepFiles(proj).findAll {
+    ! commonExtJarNames.contains(it.getName())
+  }
+  return filteredExtDepFiles
+}
+
+// Get paths relative to the project's lib dir in the target-dir
+// to the project's immediate external jar dependencies (and their dependencies
+// transitively) in the project's ext dir in the target dir
+//
+// Should NOT include any external dependencies from the project's dependant 
*projects* (transitively)
+// TODO fix that
+// 
+// e.g., returns ['../ext/jetty-...', ...]
+def Collection getTargetRelDependantProjExtJars(Project proj) {
+  def myProjLibDirInTargetDir = getTargetRelProjDir(proj, 'lib')
+  def myProjExtDirInTargetDir = getTargetRelProjDir(proj, 'ext')
+  def relProjExtDirPath = mkRelativePath(myProjLibDirInTargetDir, 
myProjExtDirInTargetDir)
+    
+  // assumes updateTargetDir task copies all the project's ext dependencies
+  // to <projectDirInTarget>/ext
+  
+  def relProjExtDeps = getProjectNonCommonExtDepFiles(proj).collect {
+    file -> "$relProjExtDirPath/$file.name"
+  }
+  //println "#### $proj.path relProjExtDeps: $relProjExtDeps"
+  return relProjExtDeps
+}
+
 def String mkManifestClassPath(Project proj) {
   // The manifest's classpath needs to include the project's:
   // - immediate-only dependant edgent jars (not transitive and not their ext 
deps)
+  // - "other" dependant external jars - e.g., samples_ext_dependencies
   // - immediate dependant external jars and their transitive deps
-  // - the core_ext_dependency jars
-  
-  // TODO note: core_ext jars and their staging path ...
+  // - the core_ext_dependencies jars
   
-  def depProjJars = getRelDirectDependantProjJars proj
+  def depProjJars = getTargetRelDirectDependantProjJars proj
   depProjJars = depProjJars.collect { stripJarNameVersion it }
   
-  // TODO def projExtJars = getRelProjExtDependantJars proj
-  def projExtJars = []
+  def projExtJars = getTargetRelDependantProjExtJars proj
   
   // unfortunate to include these if project didn't declare them as a 
dependency
-  // TODO related to come:  sample common jars
-  def coreExtJars = getRelCoreExtDependantJars proj
+  def coreExtJars = getTargetRelDependantCommonExtJars(proj, 
core_ext_dependencies)
+  
+  def otherExtJars = []
+  if (proj.path ==~ '^:samples.*') {
+     otherExtJars.addAll getTargetRelDependantCommonExtJars(proj, 
samples_ext_dependencies)
+  }
     
   def jars = []
   jars.addAll depProjJars
+  jars.addAll otherExtJars
   jars.addAll projExtJars
   jars.addAll coreExtJars
     
   def classPathStr = jars.join(' ')
-  //println "#### "+proj+" manifest classPath: "+classPathStr
+  //println "#### $proj.path manifest-classPath: $classPathStr"
   return classPathStr
 }
 
-// ==================================================================
-// floundering trying to get a project's direct dependant project's
-// jars using the gradle object model.
-//
-// A hacky way now seems to be:
-// - identify the direct dependant projects
-// - formulate the jar name for each
-// - get all of the configuration's files (ends up transitive) and
-//   filter to select only those for direct dependent projects
-
-def Collection getDirectDependantProjJarsXXX(Project tgtProj) {
-println "#### tgtProj: " + tgtProj
-
-  def directDependantProjects = tgtProj.configurations.compile.dependencies
-            .withType ProjectDependency.class
-println "#### directDependantProjects: " + directDependantProjects
-
-  def dependantProjConfigs =  directDependantProjects.collect { 
it.projectConfiguration }
-println "#### configs: "+dependantProjConfigs
-  def dependantProjPublishArtifacts = dependantProjConfigs.collect { 
it.artifacts }
-println "#### dependantProjPublishArtifacts: "+dependantProjPublishArtifacts
-  def files = dependantProjPublishArtifacts.collect { it.files.getAsPath() }
-println "#### files: "+files
-
-  directDependantProjects = directDependantProjects.collect { 
it.dependencyProject }
-  
-  def jars = directDependantProjects.collect { getProjJar it }
-  println "#### jars: " + jars
-  return jars
-}
-// ==================================================================
-
 /* Configure subprojects */
 subprojects {
 
@@ -246,7 +282,6 @@ subprojects {
   apply plugin: 'maven-publish'
   apply plugin: 'java'
   apply plugin: "jacoco"
-  ext.artifact = project.name
  
   if (buildFile.isFile() && !buildFile.exists()) {
     configurations.create('default')
@@ -346,40 +381,89 @@ subprojects {
     configure jarOptions
   }
 
-  task copyJar(type: Copy) {
-    description = "Copy subproject's assembled artifacts to target_dir 
(implicitly builds jars due to 'from jar')"
-    
-    def relProjDirInTarget = getRelProjectDirInTargetDir(project, 'lib')
-    def absProjDirInTarget = "$target_java8_dir/$relProjDirInTarget"
+  task updateTargetDir() {
+    description = "Copy subproject's assembled artifacts to target_dir 
(implicitly builds jars due to 'from jar')"    
+    doLast {
+      def simpleProjectGroup = getSimpleProjectGroup(project)
+      
+      // Copy the project's jar or war
+      def relProjDirInTarget = getTargetRelProjDir(project, 'lib')
+      if (relProjDirInTarget != null) {
+        if (project.pluginManager.hasPlugin('war')) {
+          copy {
+            from war
+            into "$target_java8_dir/$simpleProjectGroup/webapps"
+          }
+        }
+        else {
+          copy {
+            from jar
+            into "$target_java8_dir/$relProjDirInTarget"
+            rename("$jar.archiveName", "$jar.baseName.$jar.extension")
+          }
+        }
+      }
     
-    if (relProjDirInTarget != null) {
-      from jar
-      into absProjDirInTarget
-      rename("$jar.archiveName", "$jar.baseName.$jar.extension")
-    }
+      // Copy SRC when appropriate
+      if (simpleProjectGroup == 'samples') {
+        copy {
+          from(sourceSets.main.allSource.srcDirs) { include '**/*.java' }
+          into 
"$target_java8_dir/$simpleProjectGroup/src/$project.name/src/main/java/"
+        }
+      }
 
-    def simpleProjectGroup = getSimpleProjectGroup project
+      // Copy the project's external dependencies (transitively)
+      // TODO we're getting more transitive ext deps
+      // in some cases - e.g., for watson iot we "knew" we only needed a subset
+      // of all watson iot deps known to maven
+      
+      def projectExtDir = getTargetRelProjDir(project, 'ext')
+      def nonCommonExtFiles = getProjectNonCommonExtDepFiles(project)
+      logger.info "$project.path copying extDepFiles jars: 
"+nonCommonExtFiles.collect { it.getName() }
+      //println "#### $project.path copying extDepFiles jars: 
"+nonCommonExtFiles.collect { it.getName() }
+      copy {
+        from nonCommonExtFiles
+        includeEmptyDirs = false
+        into "$target_java8_dir/$projectExtDir"
+      }
     
-    // Copy war when appropriate
-    if (project.path == ':console:servlets') {
-      doLast {
+      // Copy core_ext_dependencies jars once
+      if (!copied_core_ext_dependencies_jars) {
+        copied_core_ext_dependencies_jars = true
+        def coreExtJarNames = core_ext_dependencies.collect {
+          mkJarNameFromSpec it
+        }
+        def coreExtDeps = getProjectExtDepFiles(project).findAll {
+          coreExtJarNames.contains(it.getName())
+        }
+        logger.info "$project.path copying core_ext_dependencies_jars: 
"+coreExtDeps.collect { it.getName() }
+        //println "#### $project.path copying core_ext_dependencies_jars: 
"+coreExtDeps.collect { it.getName() }
         copy {
-          from war
-          into 
"${rootProject.ext.target_java8_dir}/$simpleProjectGroup/webapps"
+          from coreExtDeps
+          includeEmptyDirs = false
+          into target_java8_ext_dir
         }
       }
-    } 
-    
-    // Copy SRC when appropriate
-    if (simpleProjectGroup == 'samples') {
-      //Copy Sample SRC to dist
-      doLast {
+
+      // Copy samples_ext_dependencies jars once
+      if ('samples' == simpleProjectGroup && 
!copied_samples_ext_dependencies_jars) {
+        copied_samples_ext_dependencies_jars = true
+        def samplesExtJarNames = samples_ext_dependencies.collect {
+          mkJarNameFromSpec it
+        }
+        def commonExtDeps = getProjectExtDepFiles(project).findAll {
+          samplesExtJarNames.contains(it.getName())
+        }
+        logger.info "$project.path copying samples_ext_dependencies_jars: 
"+commonExtDeps.collect { it.getName() }
+        //println "#### $project.path copying samples_ext_dependencies_jars: 
"+commonExtDeps.collect { it.getName() }
         copy {
-          from(sourceSets.main.allSource.srcDirs) { include '**/*.java' }
-          into 
"${rootProject.ext.target_java8_dir}/$simpleProjectGroup/src/$project.name/src/main/java/"
+          from commonExtDeps
+          includeEmptyDirs = false
+          into target_java8_ext_dir
         }
       }
-    } 
+      
+    } // doLast
   }
   
   task sourceJar(type: Jar) {
@@ -408,14 +492,14 @@ subprojects {
   }  
   
   // assemble: inject updating target_dir 
-  assemble.finalizedBy copyJar
+  assemble.finalizedBy updateTargetDir
 }
 
 task copyScripts(type: Copy) {
   description = 'Copy scripts to target_java8_dir'
   includeEmptyDirs = false
   from("scripts/") { include "**/*" }
-  into "${rootProject.ext.target_java8_dir}/scripts/"
+  into "$target_java8_dir/scripts/"
 }
 
 //Create Junit Report
@@ -604,7 +688,7 @@ task jacocoTestReport << {
 
 task aggregateJavadoc(type: Javadoc) {
   description = 'Create all javadoc into target_dir/docs/javadoc'
-  destinationDir file("$rootProject.ext.target_javadoc_dir")
+  destinationDir file(target_javadoc_dir)
   options.addStringOption('Xdoclint:none', '-quiet')
   configure(options) {
     author = true
@@ -612,7 +696,7 @@ task aggregateJavadoc(type: Javadoc) {
     use = true
     docTitle "Apache Edgent (incubating) v${build_version}"
     footer '<a href="http://edgent.incubator.apache.org";>Apache Edgent 
(incubating)</a>'
-    bottom "Copyright &#169; 2016 The Apache Software Foundation. All Rights 
Reserved - ${rootProject.ext.commithash}-${DSTAMP}-${TSTAMP}"
+    bottom "Copyright &#169; 2016 The Apache Software Foundation. All Rights 
Reserved - ${commithash}-${DSTAMP}-${TSTAMP}"
     overview "edgent_overview.html"
     windowTitle "Edgent v${build_version}"
 
@@ -641,7 +725,7 @@ task aggregateJavadoc(type: Javadoc) {
       from subprojects.collect { project -> 
project.sourceSets.main.java.srcDirs }
       include '**/doc-files/**'
       includeEmptyDirs = false
-      into "$rootProject.ext.target_javadoc_dir"
+      into target_javadoc_dir
     }
   }
 }
@@ -656,14 +740,14 @@ task addVersionDotTxt {
       'commithash.error': "$commithash_error",
       'edgent.version': "$build_version",
       ]
-    def f = new File("${rootProject.ext.target_dir}/version.txt");
+    def f = new File("$target_dir/version.txt");
     f.createNewFile()
     map.forEach { k,v -> f.append "$k=$v\n" }
   }
 }
 
 task mkTargetDir << {
-    def d = new File(rootProject.ext.target_dir);
+    def d = new File(target_dir);
     if( !d.exists() ) { d.mkdirs() }
 }
 
@@ -685,10 +769,10 @@ task releaseTarGz(type: Tar) {
   duplicatesStrategy 'exclude'
   into "${build_name}"
   // make some things first in the tgz
-  from "${rootProject.ext.target_dir}/LICENSE"
-  from "${rootProject.ext.target_dir}/README.md"
-  from "${rootProject.ext.target_dir}/version.txt"
-  from rootProject.ext.target_dir
+  from "$target_dir/LICENSE"
+  from "$target_dir/README.md"
+  from "$target_dir/version.txt"
+  from target_dir
   doLast {
     ant.checksum algorithm: 'md5', file: archivePath
     ant.checksum algorithm: 'sha1', file: archivePath

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/command/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/command/build.gradle b/connectors/command/build.gradle
index 94ae884..ae1c166 100644
--- a/connectors/command/build.gradle
+++ b/connectors/command/build.gradle
@@ -15,7 +15,7 @@ dependencies {
   compile project(':api:topology')
   compile project(':connectors:common')
   testCompile project(':providers:direct')
-  testRuntime ext_classpath
+  testRuntime core_ext_dependencies
 }
 
 addCompileTestDependencies ':api:topology', ':providers:direct', 
':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/common/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/common/build.gradle b/connectors/common/build.gradle
index 95799ea..c15c7ef 100644
--- a/connectors/common/build.gradle
+++ b/connectors/common/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/csv/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/csv/build.gradle b/connectors/csv/build.gradle
index 6924ae3..f32d8a9 100644
--- a/connectors/csv/build.gradle
+++ b/connectors/csv/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/edgent.javax.websocket/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/edgent.javax.websocket/build.gradle 
b/connectors/edgent.javax.websocket/build.gradle
index b057c75..ca8b478 100644
--- a/connectors/edgent.javax.websocket/build.gradle
+++ b/connectors/edgent.javax.websocket/build.gradle
@@ -15,5 +15,5 @@ archivesBaseName = project.name
 
 dependencies {
   compile 'javax.websocket:javax.websocket-api:1.0'
-  testRuntime ext_classpath
+  testRuntime core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/file/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/file/build.gradle b/connectors/file/build.gradle
index 6924ae3..f32d8a9 100644
--- a/connectors/file/build.gradle
+++ b/connectors/file/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/http/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/http/build.gradle b/connectors/http/build.gradle
index a8faa1f..e3a8402 100644
--- a/connectors/http/build.gradle
+++ b/connectors/http/build.gradle
@@ -15,7 +15,7 @@ dependencies {
   compile project(':api:topology')
   compile 'org.apache.httpcomponents:httpclient:4.5.1'
   compile 'org.apache.httpcomponents:httpcore:4.4.4'
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/iot/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iot/build.gradle b/connectors/iot/build.gradle
index 95799ea..c15c7ef 100644
--- a/connectors/iot/build.gradle
+++ b/connectors/iot/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/iotp/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iotp/build.gradle b/connectors/iotp/build.gradle
index d956e1e..6f05955 100644
--- a/connectors/iotp/build.gradle
+++ b/connectors/iotp/build.gradle
@@ -15,7 +15,7 @@ dependencies {
   compile project(':api:topology')
   compile project(':connectors:iot')
   compile 'com.ibm.messaging:watson-iot:0.1.1'
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/javax.websocket-client/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/javax.websocket-client/build.gradle 
b/connectors/javax.websocket-client/build.gradle
index d797e63..8967e21 100644
--- a/connectors/javax.websocket-client/build.gradle
+++ b/connectors/javax.websocket-client/build.gradle
@@ -16,5 +16,5 @@ archivesBaseName = project.name
 dependencies {
   compile project(':connectors:edgent.javax.websocket')
   compile 
'org.eclipse.jetty.websocket:javax-websocket-client-impl:9.3.6.v20151106'
-  testRuntime ext_classpath
+  testRuntime core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/javax.websocket-server/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/javax.websocket-server/build.gradle 
b/connectors/javax.websocket-server/build.gradle
index f3ae61f..7fbd6d2 100644
--- a/connectors/javax.websocket-server/build.gradle
+++ b/connectors/javax.websocket-server/build.gradle
@@ -16,5 +16,5 @@ 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
+  testRuntime core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/jdbc/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/jdbc/build.gradle b/connectors/jdbc/build.gradle
index 6924ae3..f32d8a9 100644
--- a/connectors/jdbc/build.gradle
+++ b/connectors/jdbc/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/kafka/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/kafka/build.gradle b/connectors/kafka/build.gradle
index 0bef269..9852252 100644
--- a/connectors/kafka/build.gradle
+++ b/connectors/kafka/build.gradle
@@ -15,7 +15,7 @@ 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
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/mqtt/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/mqtt/build.gradle b/connectors/mqtt/build.gradle
index 51df5b1..9b5958c 100644
--- a/connectors/mqtt/build.gradle
+++ b/connectors/mqtt/build.gradle
@@ -17,7 +17,7 @@ dependencies {
   compile project(':connectors:common')
   compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
   testCompile project(':providers:direct')
-  testRuntime ext_classpath
+  testRuntime core_ext_dependencies
 }
 
 addCompileTestDependencies ':api:topology', ':providers:direct', 
':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/pubsub/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/pubsub/build.gradle b/connectors/pubsub/build.gradle
index 95799ea..c15c7ef 100644
--- a/connectors/pubsub/build.gradle
+++ b/connectors/pubsub/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/serial/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/serial/build.gradle b/connectors/serial/build.gradle
index 95799ea..c15c7ef 100644
--- a/connectors/serial/build.gradle
+++ b/connectors/serial/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/wsclient-javax.websocket/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/wsclient-javax.websocket/build.gradle 
b/connectors/wsclient-javax.websocket/build.gradle
index 0e0510e..b145db0 100644
--- a/connectors/wsclient-javax.websocket/build.gradle
+++ b/connectors/wsclient-javax.websocket/build.gradle
@@ -19,7 +19,7 @@ dependencies {
   testCompile project(':providers:direct')
   testCompile project(':connectors:javax.websocket-client')
   testCompile project(':connectors:javax.websocket-server')
-  testRuntime ext_classpath
+  testRuntime core_ext_dependencies
 }
 
 addCompileTestDependencies ':api:topology', ':providers:direct', 
':connectors:common'

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/connectors/wsclient/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/wsclient/build.gradle b/connectors/wsclient/build.gradle
index 95799ea..c15c7ef 100644
--- a/connectors/wsclient/build.gradle
+++ b/connectors/wsclient/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':providers:direct')
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/console/server/build.gradle
----------------------------------------------------------------------
diff --git a/console/server/build.gradle b/console/server/build.gradle
index 49df5f8..6b48e13 100644
--- a/console/server/build.gradle
+++ b/console/server/build.gradle
@@ -20,5 +20,5 @@ dependencies {
   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
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/console/servlets/build.gradle
----------------------------------------------------------------------
diff --git a/console/servlets/build.gradle b/console/servlets/build.gradle
index 58c2374..f419e09 100644
--- a/console/servlets/build.gradle
+++ b/console/servlets/build.gradle
@@ -18,7 +18,7 @@ plugins.apply 'war'
 dependencies {
   providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
   providedCompile project(':utils:streamscope')
-  providedCompile ext_classpath
+  providedCompile core_ext_dependencies
 }
 
 war {

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/providers/direct/build.gradle
----------------------------------------------------------------------
diff --git a/providers/direct/build.gradle b/providers/direct/build.gradle
index 84566d1..b221d2b 100644
--- a/providers/direct/build.gradle
+++ b/providers/direct/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   compile project(':runtime:appservice')
   compile project(':runtime:etiao')
   compile project(':runtime:jsoncontrol')
-  compile ext_classpath
+  compile core_ext_dependencies
   testCompile project(':utils:metrics')
   testCompile project(':runtime:appservice')
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/runtime/appservice/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/appservice/build.gradle b/runtime/appservice/build.gradle
index b6c751b..692d1dc 100644
--- a/runtime/appservice/build.gradle
+++ b/runtime/appservice/build.gradle
@@ -14,5 +14,5 @@
 dependencies {
   compile project(':api:execution')
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/runtime/etiao/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/etiao/build.gradle b/runtime/etiao/build.gradle
index c5f4e03..9dc1641 100644
--- a/runtime/etiao/build.gradle
+++ b/runtime/etiao/build.gradle
@@ -15,7 +15,7 @@ dependencies {
   compile project(':api:execution')
   compile project(':api:graph')
   compile project(':spi:graph')
-  compile ext_classpath
+  compile core_ext_dependencies
 }
 
 addCompileTestDependencies ':api:graph'

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/runtime/jmxcontrol/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jmxcontrol/build.gradle b/runtime/jmxcontrol/build.gradle
index a4892ef..3183e4d 100644
--- a/runtime/jmxcontrol/build.gradle
+++ b/runtime/jmxcontrol/build.gradle
@@ -14,5 +14,5 @@
 dependencies {
   compile project(':api:execution')
   compile project(':api:function')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/runtime/jobregistry/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jobregistry/build.gradle b/runtime/jobregistry/build.gradle
index b6c751b..692d1dc 100644
--- a/runtime/jobregistry/build.gradle
+++ b/runtime/jobregistry/build.gradle
@@ -14,5 +14,5 @@
 dependencies {
   compile project(':api:execution')
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/runtime/jsoncontrol/build.gradle
----------------------------------------------------------------------
diff --git a/runtime/jsoncontrol/build.gradle b/runtime/jsoncontrol/build.gradle
index a4892ef..3183e4d 100644
--- a/runtime/jsoncontrol/build.gradle
+++ b/runtime/jsoncontrol/build.gradle
@@ -14,5 +14,5 @@
 dependencies {
   compile project(':api:execution')
   compile project(':api:function')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/samples/apps/build.gradle
----------------------------------------------------------------------
diff --git a/samples/apps/build.gradle b/samples/apps/build.gradle
index 167e94a..23ddc07 100644
--- a/samples/apps/build.gradle
+++ b/samples/apps/build.gradle
@@ -20,5 +20,7 @@ dependencies {
   compile project(':analytics:math3')
   compile project(':analytics:sensors')
   compile project(':samples:utils')
-  compile ext_classpath
+  compile core_ext_dependencies
+  
+  runtime samples_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/samples/connectors/build.gradle
----------------------------------------------------------------------
diff --git a/samples/connectors/build.gradle b/samples/connectors/build.gradle
index b3beb2e..0eb5d9a 100644
--- a/samples/connectors/build.gradle
+++ b/samples/connectors/build.gradle
@@ -22,5 +22,7 @@ dependencies {
   compile project(':connectors:serial')
   compile project(':samples:topology')
   compile project(':samples:utils')
-  compile ext_classpath
+  compile core_ext_dependencies
+  
+  runtime samples_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/samples/console/build.gradle
----------------------------------------------------------------------
diff --git a/samples/console/build.gradle b/samples/console/build.gradle
index 7473f0f..867ca86 100644
--- a/samples/console/build.gradle
+++ b/samples/console/build.gradle
@@ -15,5 +15,7 @@ dependencies {
   compile project(':providers:development')
   compile project(':providers:direct')
   compile project(':console:server')
-  compile ext_classpath
+  compile core_ext_dependencies
+  
+  runtime samples_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/samples/scenarios/build.gradle
----------------------------------------------------------------------
diff --git a/samples/scenarios/build.gradle b/samples/scenarios/build.gradle
index 9620860..72f2a4d 100644
--- a/samples/scenarios/build.gradle
+++ b/samples/scenarios/build.gradle
@@ -18,5 +18,7 @@ dependencies {
   compile project(':providers:iot')
   compile project(':connectors:iotp')
   compile 'com.pi4j:pi4j-core:1.0'
-  compile ext_classpath
+  compile core_ext_dependencies
+  
+  runtime samples_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/samples/topology/build.gradle
----------------------------------------------------------------------
diff --git a/samples/topology/build.gradle b/samples/topology/build.gradle
index dd9d13c..c679470 100644
--- a/samples/topology/build.gradle
+++ b/samples/topology/build.gradle
@@ -17,5 +17,7 @@ dependencies {
   compile project(':analytics:math3')
   compile project(':runtime:jobregistry')
   compile project(':samples:utils')
-  compile ext_classpath
+  compile core_ext_dependencies
+  
+  runtime samples_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/samples/utils/build.gradle
----------------------------------------------------------------------
diff --git a/samples/utils/build.gradle b/samples/utils/build.gradle
index 833c006..6ba00f7 100644
--- a/samples/utils/build.gradle
+++ b/samples/utils/build.gradle
@@ -17,5 +17,7 @@ dependencies {
   compile project(':utils:metrics')
   compile project(':analytics:math3')
   compile project(':analytics:sensors')
-  compile ext_classpath
+  compile core_ext_dependencies
+  
+  runtime samples_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/spi/graph/build.gradle
----------------------------------------------------------------------
diff --git a/spi/graph/build.gradle b/spi/graph/build.gradle
index afa3a41..05e565a 100644
--- a/spi/graph/build.gradle
+++ b/spi/graph/build.gradle
@@ -14,5 +14,5 @@
 dependencies {
   compile project(':api:execution')
   compile project(':api:graph')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/spi/topology/build.gradle
----------------------------------------------------------------------
diff --git a/spi/topology/build.gradle b/spi/topology/build.gradle
index 00d0109..8ea0eeb 100644
--- a/spi/topology/build.gradle
+++ b/spi/topology/build.gradle
@@ -13,5 +13,5 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
 }

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/test/fvtiot/build.gradle
----------------------------------------------------------------------
diff --git a/test/fvtiot/build.gradle b/test/fvtiot/build.gradle
index 262552c..7fe9f99 100644
--- a/test/fvtiot/build.gradle
+++ b/test/fvtiot/build.gradle
@@ -15,7 +15,7 @@ dependencies {
   compile project(':providers:iot')
   compile project(':runtime:appservice')
   compile project(':runtime:jsoncontrol')
-  compile ext_classpath
+  compile core_ext_dependencies
 }
 
 addCompileTestDependencies ':apps:iot'
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/test/svt/build.gradle
----------------------------------------------------------------------
diff --git a/test/svt/build.gradle b/test/svt/build.gradle
index 8f137ac..cfeba53 100644
--- a/test/svt/build.gradle
+++ b/test/svt/build.gradle
@@ -20,7 +20,7 @@ dependencies {
   compile project(':providers:development')
   compile project(':samples:apps')
   compile project(':connectors:iotp')
-  compile ext_classpath
+  compile core_ext_dependencies
 }
 
 tasks.build.doFirst(){

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/utils/metrics/build.gradle
----------------------------------------------------------------------
diff --git a/utils/metrics/build.gradle b/utils/metrics/build.gradle
index 841b180..42c5dc9 100644
--- a/utils/metrics/build.gradle
+++ b/utils/metrics/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
 }
 
 addCompileTestDependencies ':api:topology'

http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/76c1972c/utils/streamscope/build.gradle
----------------------------------------------------------------------
diff --git a/utils/streamscope/build.gradle b/utils/streamscope/build.gradle
index 841b180..42c5dc9 100644
--- a/utils/streamscope/build.gradle
+++ b/utils/streamscope/build.gradle
@@ -13,7 +13,7 @@
  */
 dependencies {
   compile project(':api:topology')
-  compile ext_classpath
+  compile core_ext_dependencies
 }
 
 addCompileTestDependencies ':api:topology'

Reply via email to