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 © 2016 The Apache Software Foundation. All Rights Reserved - ${rootProject.ext.commithash}-${DSTAMP}-${TSTAMP}" + bottom "Copyright © 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'
